更新于:11-06 08:46

有关[技术]标签推荐

详解 Tomcat 的连接数与线程池

于11-12 13:09 - TiuVe2 - 基础技术 Tomcat
在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector). 在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine.

GIF vs APNG vs WebP

于02-14 06:14 - JayXon - 技术文章 apng compression gif png
GIF 是一个非常古老的格式,1987 年诞生,最后一个版本是 1989 年. (这就是为什么 GIF 文件头的 magic number 是 GIF89a). APNG 相对新一些,是 Mozilla 在 2004 年推出的,十几年的科技进步是不容小觑的,所以 APNG相对于 GIF 的优势十分明显,后面会分析.

RESTful API 设计最佳实践

于10-16 13:48 - 十七树 - IT技术 restful
项目资源的URL应该如何设计. 用哪种HTTP方法来创建一个新的资源. 实现分页和版本控制的最好方法是什么. 因为有太多的疑问,设计RESTful API变得很棘手. 在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案. 资源集合用一个URL,具体某个资源用一个URL:. #资源集合的URL /employees/56.

Web GIS 离线解决方案

于10-16 13:51 - TiuVe2 - 基础技术 GIS
在离线环境下(局域网中)的GIS系统中如何使用地图. 这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS地图,就要有底图切片数据,地图的底图切片数据在一定时间内是不会变化的,可以使用一些地图下载器下载地图切片,如这个 地图下载器.

区块链原理最清晰最直观的解释

于09-26 10:00 - 孙腾浩 - IT技术 区块链
维基百科上对区块链的描述:. 维护不断增长的记录(称作区块)的分布式数据库. 听上去很简单,但到底是怎么回事呢. 我们用一款开源命令行界面 Blockchain CLI 来详细说明区块链. 我也做了一个 浏览器可以访问的在线版. 首先请确保安装 Node.js. 然后在终端里运行下面命令:.

如何正确实现 Java 中的 HashCode

于09-19 02:34 - TiuVe2 - 基础技术 hashCode
相等 和 Hash Code. 从一般角度来看,Equality 是不错的,但是 hash code 更则具技巧性. 如果我们在 hash code上多下点功夫,我们就能了解到 hash code 就是用在细微处去提升性能的. 大部分的数据结构使用equals去检查是否他们包含一个元素. 这个变量 contains 是true.

手把手教你 Spark 性能调优

于09-08 06:04 - TiuVe2 - 基础技术 Spark 性能优化
上周四接到反馈,集群部分 spark 任务执行很慢,且经常出错,参数改来改去怎么都无法优化其性能和解决频繁随机报错的问题. 看了下任务的历史运行情况,平均时间 3h 左右,而且极其不稳定,偶尔还会报错:. 在有限的计算下,job的运行时长和数据量大小正相关,在本例中,数据量大小基本稳定,可以排除是日志量级波动导致的问题:.

基于 Redis 实现分布式应用限流

于09-07 12:10 - 十七树 - IT技术 Redis 数据库
限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务. 前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案,参考《redis in action》 实现了一个jedis版本的,都属于业务层次限制. 按照一定的规则如帐号、IP、系统调用逻辑等在Nginx层面做限流.

如何做有效的Code Review?我有这些建议

于08-15 10:57 - maifans - IT技术 Code Review
代码评审(Code review)是保证代码质量的一种有效手段,做得好的话,对公司来讲是一笔收益颇高的时间投资. 但实践起来往往变成了炫耀编程技能、固执己见、恶言相向、同事关系恶化的事,这该如何是好. 往往代码评审过程中,评审者(Reviewer)往往会过于关心旁枝末节,而忽视主要问题,也就是所谓的自行车棚效应.

用神经网络训练一个文本分类器

于08-10 13:05 - Anne90 - IT技术 机器学习
理解聊天机器人的工作原理是非常重要的. 聊天机器人内部一个非常重要的组件就是文本分类器. 我们看一下文本分类器的神经网络(ANN)的内部工作原理. 我们将会使用2层网络(1个隐层)和一个“词包”的方法来组织我们的训练数据. 文本分类有3个特点:模式匹配、算法、神经网络. 虽然使用多项朴素贝叶斯算法的方法非常有效,但是它有3个致命的缺陷:.

详解 equals() 方法和 hashCode() 方法

于07-19 16:00 - TiuVe2 - 基础技术 hashCode
Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码. equals()和hashCode()都不是final方法,都可以被重写(overwrite). 本文介绍了2种方法在使用和重写时,一些需要注意的问题. Object类中equals()方法实现如下:.

数据库压缩技术探索

于07-19 04:21 - 十七树 - IT技术 数据库
作者:雷鹏,Terark核心技术发明人. 曾就职奇虎360,负责搜索引擎核心研发;曾就职Yahoo. 北研所负责搜索广告、广告交易(AdExchange)等项目. 在数据库、高性能计算、分布式、系统架构上都深有造诣. 作为数据库,在系统资源(CPU、内存、SSD、磁盘等)一定的前提下,我们希望:. 存储的数据更多:采用压缩,这个世界上有各种各样的压缩算法;.

记一次 MySQL 主从复制延迟的踩坑

于07-16 08:32 - hoohack - IT技术 MySQL 数据库
最近开发中遇到的一个 MySQL 主从延迟的坑,记录并总结,避免再次犯同样的错误. 一个活动信息需要审批,审批之后才能生效. 因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容,考虑到字段比较多,也要保存审批活动的内容,因此设计采用了一张临时表,审批中的活动写进审批表(activity_tmp),审批通过之后才把真正的活动内容写进活动表(activity).

如何理解并正确使用 MySQL 索引

于07-14 04:47 - 十七树 - IT技术 MySQL 数据库 索引
索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧. 注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构. 1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度.

欢迎来到后 ASO 时代

于07-06 06:50 - 何, 六六 - 前端技术 SEO ASO App Store iOS11
6 月 WWDC 上所宣布的「App Store 将迎来大改版」的消息,给 ASO 界砸下了一枚重磅炸弹. 虽说 iOS11 要到今年秋季才会正式推送,且正式版面世到大面积使用还需要一定时间,到底会不会迎来一个新的 ASO 时代,目前尚不可知. 为了做好迎接新时代的准备,咱们先来看看苹果砸下的到底是一枚什么样的「炸弹」.

实现前后端分离的心得

于07-02 07:46 - (●'◡'●) - IT技术 前端 后端
对目前的web来说,前后端分离已经变得越来越流行了,越来越多的企业/网站都开始往这个方向靠拢. 那么,为什么要选择前后端分离呢. 前后端分离对实际开发有什么好处呢?. 在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开发人员来实现的,或者是前端是紧紧的耦合后台.

谈一下我们是如何开展code review的

于06-28 08:50 - (●'◡'●) - IT技术 Code Review 代码审查
众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的. 笔者水平有限,若有错误和纰漏,还请大家指正. 我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点:. 国内的整体环境,国内的公司,尤其是互联网公司,讲究速度致上,软件开发的迭代周期周期短,速度快,因为竞争太大,开发的产品要求快速上线,对代码审查不是很重视,先上线,出了问题再解决.

【译】Reddit如何统计每个帖子的浏览量

于06-17 16:01 - TiuVe2 - 基础技术 HyperLogLog Reddit
之前没听过也没了解过 HyperLogLog,通过翻译这篇文章正好简单学习下. 我们想要更好的向用户展示 Reddit 的规模. 为了这一点,投票和评论数是一个帖子最重要的指标. 然而,在 Reddit 上有相当多的用户只浏览内容,既不投票也不评论. 所以我们想要建立一个能够计算一个帖子浏览数的系统.

自建一个电话呼叫中心要多少钱?

于06-17 16:46 - ideawu - IT技术和评论 SIP VoIP
我十分看不惯任何行业的潜规则行为. 自建一个电话呼叫中心的报价是多少钱. 我明说吧,自建一个电话呼叫中心,只需要3万元左右,而且还能更省钱. 这个报价是针对小型企业的,也就是广大人民群众. 至于大型企业,它们自己去定制,钱不是问题. 3万元建一个电话呼叫中心,包括什么. 软件是硬件设备上免费赠送的,不要钱.

Spring Boot异常处理详解

于05-31 02:35 - TiuVe2 - 基础技术 spring boot 异常处理
在《 Spring MVC异常处理详解 》中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作. 下图列出了Spring Boot中跟MVC异常处理相关的类. Spring Boot在启动过程中会根据当前环境进行AutoConfiguration,其中跟MVC错误处理相关的配置内容,在ErrorMvcAutoConfiguration这个类中.

Spark Shuffle过程分析:Map阶段处理流程

于05-26 15:13 - Yanjun - Spark 开源技术 Spark-2.0.0
默认配置情况下,Spark在Shuffle过程中会使用SortShuffleManager来管理Shuffle过程中需要的基本组件,以及对RDD各个Partition数据的计算. 我们可以在Driver和Executor对应的SparkEnv对象创建过程中看到对应的配置,如下代码所示:. 如果需要修改ShuffleManager实现,则只需要修改配置项spark.shuffle.manager即可,默认支持sort和 tungsten-sort,可以指定自己实现的ShuffleManager类.

一个轻量级分布式 RPC 框架 — NettyRpc

于05-18 16:01 - TiuVe2 - 基础技术 NettyRPC RPC
最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章《 轻量级分布式 RPC 框架》,作者用Zookeeper、Netty和Spring写了一个轻量级的分布式RPC框架. 花了一些时间看了下他的代码,写的干净简单,写的RPC框架可以算是一个简易版的 dubbo. 这个RPC框架虽小,但是麻雀虽小,五脏俱全,有兴趣的可以学习一下.

Netty 超时机制及心跳程序实现

于05-14 16:02 - TiuVe2 - 技术架构 Netty
本文介绍了 Netty 超时机制的原理,以及如何在连接闲置时发送一个心跳来维持连接. Netty 超时机制的介绍. Netty 的超时类型 IdleState 主要分为:. ALL_IDLE : 一段时间内没有数据接收或者发送. READER_IDLE : 一段时间内没有数据接收. WRITER_IDLE : 一段时间内没有数据发送.

Java常见面试题之Forward和Redirect的区别

于05-09 16:01 - TiuVe2 - 基础技术 Forward Redirect 面试
一:间接请求转发(Redirect). 二:直接请求转发(Forward). 用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的. 根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢.

Spring boot executable jar/war 原理

于05-05 16:02 - TiuVe2 - 基础技术 spring boot
spring boot里其实不仅可以直接以 Java -jar demo.jar的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如./demo.jar. 把这个executable jar/war 链接到/etc/init.d下面,还可以变为Linux下的一个service. 只要在spring boot maven plugin里配置:.

Linux下正确删除海量文件的姿势

于02-16 10:16 - 歪脖骇客 - 技术技巧 linux 删文件
这里说的“海量”并不是指体积大,而是指数量,比如一个目录下有数百万个小文件. 最近在优化服务器时发现postfix下的maildrop目录和clientmqueue目录下发现有大量的文件,进入这些目录里使用ls命令是愚蠢的做法,而直接执行 rm *,没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的.

每天自动备份MySQL数据库的shell脚本

于02-15 09:50 - 歪脖骇客 - 技术技巧 shell 备份 数据库
经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的. 一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行. 我们需要一种安全的,每天自动备份的方法. 下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法.

分布式系统中唯一 ID 的生成方法

于02-05 15:29 - 伯小乐 - IT技术 分布式
本文主要介绍在一个分布式系统中, 怎么样生成全局唯一的 ID. 在分布式系统存在多个 Shard 的场景中, 同时在各个 Shard 插入数据时, 怎么给这些数据生成全局的 unique ID?. 在单机系统中 (例如一个 MySQL 实例), unique ID 的生成是非常简单的, 直接利用 MySQL 自带的自增 ID 功能就可以实现..

从Gitlab误删除数据库想到的

于02-02 08:11 - 陈皓 - 技术新闻 程序设计 系统架构 Design Gitlab
昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很多东西,而对于类似这样的事情,我自己以前也干过,而在最近的两公司中我也见过(Amazon中见过一次,阿里中见过至少四次),正好通过这个事来说说一下自己的一些感想和观点吧.

JVM上最快的Bloom filter实现

于01-29 03:41 - 唐尤华 - 基础技术 BloomFilter JVM Scala
英文原始出处:  Bloom filter for Scala, the fastest for JVM. 本文介绍的是我用Scala实现的Bloom filter. 依照 性能测试结果,它是JVM上的 最快的Bloom filter实现. 零分配(Zero-allocation)和高度优化的代码.