自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 网络传输粘包的处理

粘包产生的原因1.发送端数据由于nagle算法,将多个业务数据包压成一个TCP包发送2.接收端数据缓冲区读数据一次读入了多个包的数据 拆包产生原因:1.发送端由于消息超过了MSS(最大报文段长度)限制大小被拆成多个TCP报文发送2.接收端数据缓冲区一次读入了非整数个包的数据 处理粘包或者分包的策略基本就两种:1.每个数据前后加特殊字符,比如ftp方式,这样方式...

2016-06-17 14:48:30 271

原创 JVM垃圾回收知识汇总

什么是垃圾回收java程序运行期间生成新对象,加载类文件都需要占用内存,不同对象从被创建,使用,存储到最后使用完毕被销毁都有一个完整的生命周期,java程序开发人员实际上只需要负责对象的创建使用,对象的销毁回收由虚拟机自动完成,对象的回收过程就是垃圾回收怎么来做垃圾回收jvm运行期间使用的内存包括堆内存,创建线程使用的vm栈内存,存储方法,类,常量池使用的永久代内存,堆外内存...

2016-05-12 21:30:35 161

原创 网络吞吐量的估算

在写数据传输程序的时候我们会关心服务器和客户端之间通信的网络延迟有多大?数据收发的吞吐量最大有多少? tcp socket 客户端和服务端之间的通信延迟受到很多因素影响,基本没办法准确的估算出来,比如传输距离,网络路由跳数,交换机处理时间,网卡处理延迟,cpu处理延迟,丢包率等。其中的传输距离影响比较大,虽然电信号以光速传播,其延迟也不能随便忽略,比如10公里的距离光传播的延迟就有33...

2016-05-02 22:28:55 1132

原创 数据库事务和锁

数据库的事务指的是一组业务处理逻辑,这组逻辑处理要求要么都成功要么都失败(原子性),执行前数据和执行后数据状态总是一致的(一致性),事务之间的处理不会互相影响(隔离性),事务执行完毕之后数据必须持久化了()。一个具体的数据库产品会用一些技术手段来实现事务的这些特性。比如用undo log实现数据回滚,不同的数据库锁策略来实现不同的隔离性。清晰地了解这些特性的实现细节有助于正确地设计和实现复杂的...

2016-04-17 15:57:58 108

原创 倒排索引和正排索引的优化点

搜索系统中对于索引和字典的存储主要面临两大挑战:1.数据压缩2.快速地检索和排序 正排表的存储有如下两个点来压缩数据:1.正排表词在在DOC中出现的为止采用单调递增差分存储,这样存储这个数字序列的时候可以用尽可能少的字节数来存,达到压缩效果 2.在存储文档中所有WORD ID的时候在最后一个词后面插入一个NULL,并且采用非结构化方式存储可以减少很多冗余的DOCID...

2016-04-12 10:59:42 402

DB redo undo日志笔记

redo log:1.用户对DB数据的修改过程是先将数据读取到内存缓存-->修改内存中的值-->写redo日志落盘-->返回结果给用户,由此可以看出redo日志主要作用是提高读写效率,减少对磁盘的随机写,可以合并对db中的某一数据的多次不同操作,由此可以看出如果对磁盘的随机写性能如果同顺序写差不多,redolog 存在的必要性还有多少呢?2.redo log是循环写入覆...

2016-02-21 19:48:43 118

原创 系统拆分的几个考虑点

系统庞大之后需要考虑拆分,考虑的点基于如下几个,是否将一个模块拆分出来独立成子系统可以按照下面的几个要素进行打分评估:1.业务逻辑相关性:高内聚低耦合的模块可以相互独立,这个是前提;2.模块独立是否可以提高系统整体的复用性;3.当前系统是否太臃肿确实需要把高内聚低耦合的模块拆分,提系统高处理能力;4.拆分前后各个子系统之间的依赖关系是否合理,按照重要程度依赖方向总是低重要性...

2014-07-15 18:10:37 186

原创 标准差(standar deviation)和标准误(standar error)

在日常的统计分析中,标准差和标准误是一对十分重要的统计量,两者有区别也有联系。但是很多人却没有弄清其中的差异,经常性地进行一些错误的使用。对于标准差与标准误的区别,很多书上这样表达:标准差表示数据的离散程度,标准误表示抽样误差的大小。这样的解释可能对于许多人来说等于没有解释。其实这两者的区别可以采用数据分布表达方式描述如下:如果样本服从均值为μ,标准差为δ的正态分布,即X~N(μ, δ2),...

2013-07-02 15:10:44 1866

原创 t统计量和z统计量

z统计和t统计可以用来检验两个平均数之间差异显著的程度,z适合大样本的情况(样本数大于30),t适合小样本的情况。z检验的步骤:第一步:建立虚无假设 H0:μ1 = μ2 ,即先假定两个平均数之间没有显著差异,  第二步:计算统计量Z值,对于不同类型的问题选用不同的统计量计算方法,  1、如果检验一个样本平均数()与一个已知的总体平均数(μ0)的差异是否显著。其Z值计算公式为:...

2013-05-06 20:03:20 29864 1

回归算法的学习路径

在学习回归算法过程中,一路遇到不少问题,数学和算法方面的基础薄弱,因此采用的策略是深度优先的学习方法,从头到脚看算法,遇到不懂的概念就跳转如相关概念或算法的学习。1.线性回归基本算法思想2.正态分布:其中的随机误差符合正态分布3.极限,导数,方向导数,梯度,梯度下降法求残差最小值;4.全微分,偏微分,最小二乘法求残差最小值;5.回归效果的显著性检查F检验:考察各直线对各个变...

2013-05-06 14:08:52 116

Combiner 出现的问题

使用了combiner来聚合mapper端一些数据,发现个诡异的问题,输出到reducer端的数据总是时好时坏,找了两天终于发现原来combiner可能会在mapper端多次执行,如果mapper端数据比较大,combiner可能就会分多次被执行,hadoop文档中也有说明combiner可能被执行也可能不被执行,要求mapper输出数据格式和combiner输出一致。改了下输出格式,问题没...

2013-02-05 18:29:41 482

hadoop JOB的性能优化实践

使用了几个月的hadoopMR,对遇到过的性能问题做点笔记,这里只涉及job的性能优化,没有接触到hadoop集群,操作系统,任务调度策略这些方面的问题。hadoop MR在做大数据量分析时候有限的计算资源情况下只能不断的优化程序。优化可以从两个方面进行:1.hadoop配置2.程序代码程序代码包括的方面很多:job设计,算法,数据结构,代码编写。hadoop配置优化...

2012-12-26 21:10:26 145

原创 数据分析中的分词

数据分析的其中一个步骤是对输入内容分词,内容中可能含有垃圾词或无意义词或分词分错的,因此用停用词词典和几个正则表达式进行过滤,之前处理的量级大约是10G这个量级,处理速度挺好。 这次增加很多数据源,处理量级上升到1T级别,这些分析处理的速度明显感觉很慢,通过性能分析发现用正则表达式来match,判断是否是垃圾词的方式性能比较差,如果去除这些正则,处理速度能提高一倍,试着把各...

2012-12-04 15:32:30 439

tf-idf的问题

传统的tf-idf计算需要有4个MR完成,其中计算逆向文档频率时候对于文档数在百万级别以下的,中间数据可以直接放内存的hashmap,但是文档数千万或上亿,可能会导致内存溢出,这时候计算方式要不同,把|d|的数量单独输出,增加一个步骤把|d|和之前的数据做join。...

2012-11-26 21:14:56 150

加载distribute cache过大

为了节省一步join的MR,使用distribute cache把小文件加载到内存,分析的数据实在过大,导致特征词统计的小文件也可能要达到600M左右,解决办法两种:1.调整数据结构,减少内存中的数据条数;2.改用join的方式加载入数据...

2012-11-26 21:09:47 168

Apche http server rewrite 规则配置笔记

这两天研究了下apacheURL重写替换规则文档。apache服务器接收了请求之后检查http头中的host域,找到对应的virtual host,执行virtual host中配置的指令。 在配置的时候有两个问题要注意: 1.如果要想把请求映射到本地系统文件(/home/user1/www/abc.htm),首先要确认目录/home/user1/www/是否允许被访问,这个配置由...

2011-11-04 18:22:09 104

Apache 基于IP和基于域名的虚拟主机配置

apache有两种虚拟主机配置方式:基于IP的虚拟主机和基于域名的虚拟主机。虚拟主机的作用是配置IP或域名和web应用的对应关系。基于IP的配置:1.多IP的主机,每个不同的IP对应了一个虚拟主机,请求过来的时候Apache根据不同的IP分发到不同的虚拟服务器,这时候IP和应用的对应关系是1:1; 2.一个IP配置多个端口:用不同端口对应不同的应用也应该可以实现一个IP对应...

2011-11-02 20:36:01 324

原创 maven学习笔记

研究了几个maven的问题,在这里记录一下:1.在构建的时候自动生成javadoc和source包,需要在pom中添加如下内容<execution> <phase>package</phase> <goals> <goal>jar</goal> </goals&

2011-07-08 15:48:04 81

系统的拆分

今天去绿茶吃饭,好不容易等到个位子靠窗的,正好外面下着雨,窗外就是个瓦房的屋顶, 黑色的瓦片正反交错叠在一起,心想为什么不把瓦片做大一些呢,这样铺满整个屋顶就可以快的多了,联系到这段时间做个框架,把一个系统拆分成许多相对独立的模块,每个模块可以单独运行在一个进程中,系统就成为分布式的了,用这种方式提高系统稳定性,可扩展性,但是增加了网络IO的开销,系统的实时性有所降低,不过好处是扩展性...

2011-06-12 19:11:37 120

maven学习笔记-1

新的工作环境需要用maven,之前一直用ant,学一个新东西之前首先需要看看新的比传统的先进在哪里。下面是学习之前对maven的理解maven和ant比较:1.maven有一个中央构建仓库,在配置工程的时候只需要指定所依赖的第三方工具的名称,maven将自动从中央仓库或本地仓库下载依赖的jar包,并且可以总动下载jar包所对应源码,和ant比起来最吸引人的就是不需要再管li...

2011-06-12 18:27:52 224

一个好玩的开源免费画界面原型图的工具

看腻了viso的那种xp风格的原型图,找了一通发现个挺好玩的画原型图的工具,evolus pencil,支持很多种风格的界面,linux的GTK, XP,本地风格,html,最好玩的就是一种手绘风格的,就像自己在纸上画的那样,最重要的是免费开源,看上去很亲切;缺点就是启动速度很慢很慢,一些细节处理的不如Viso,瑕不掩瑜啊。。。http://pencil.evolus.vn/en-...

2011-05-30 10:32:20 1355

几个可以画网络拓扑图的开源库

之前做个监控系统,需要在GUI客户端有个网络拓扑结构图,实时显示被监控节点的连接情况,支持动态增减监控节点,能够在拓扑图上自动布局。找到了三个比较合适的库: SWT的ZEST :基于draw2D库封装的,增加了一些事件处理,动画效果和几个常见布局;是个比较粗糙的类库,图节点都被一个矩形框包围,就算是自己定义了透明背景的icon,周围也必须被一个方框包围,要命的是如果你的图节...

2011-05-30 10:11:28 4568 1

淘宝 VS 支付宝

淘宝和支付宝哪个好点,各有什么特点?如果开的条件差不多该如何选择?求真相....

2011-04-25 10:25:41 90

阿里系的技术氛围

前段时间猎头推荐面支付宝,经过N轮免试和笔试,最后通知给offer了,但是开的薪水总体算下来还不如现在的,猎头苦口婆心的说服我去,说里头的技术氛围很好,发展很有前途,包括坛子里头弟兄们也常把阿里巴巴说的天花乱坠,进去之后技术好像能够突飞猛进,现在我对薪资和级别的预期已经被成功地压低了,我承认我确实对技术比较热爱,对技术氛围很看重,但是也快30的人了,工作4年,跳槽是不是可以...

2011-04-21 10:46:28 262

消息的同步发送,异步发送以及消息发送的可靠性

最近写的一个通信框架中有两种最基本的消息发送方式:同步发送和异步发送。同步方式:消息的发送方发A送一条消息到接收端B,B收到消息之后需要对消息进行处理,然后发送ACK确认消息回A,A收到B的ACK之后就可以认为这条消息发送成功,并且保证B顺利收到并处理,在A收到ACK之前A将一直处于阻塞等待状态。 异步方式:可细分成发送线程和接受线程异步,发送端进程和接收端进程异步; ...

2011-02-21 23:43:17 547

服务器端利器--双缓冲队列

传统队列是生产者线程和消费者线程从同一个队列中存取数据,必然需要互斥访问,在互相同步等待中浪费了宝贵的时间,使队列吞吐量受影响。双缓冲队使用两个队列,将读写分离,一个队列专门用来读,另一个专门用来写,当读队列空或写队列满时将两个队列互换。这里为了保证队列的读写顺序,当读队列为空且写队列不为空时候才允许两个队列互换。经过测试性能较JDK自带的queue的确有不小提高。...

2010-06-22 16:24:51 194

原创 FIX协议学习笔记

Fix 协议可以分两大部分,会话层协议和业务层协议。会话层定义了数据通信相关的协议,业务层定义了金融活动相关的业务数据结构。 Fix 的会话层设计时候充分考虑了 稳定性,安全性,健壮性,高效性。稳定性指会话协议中定义了心跳消息来维护会话连接,安全性指协议从消息结构上支持数据加密,出错重传指 每个会话在两个端点各自维护一套消息序列号,防止消息丢失,漏发漏收,出现这种情况只要检查两边序列号的连...

2010-03-08 10:36:15 534

原创 深入研究SSL【第二章 part-2】-SSL握手协议的研究

第一章. 对SSL的基本概念和框架的介绍 第二章.对SSL握手协议的研究(part-1 ) 第三章.对SSL握手协议的研究(part-2) 第四章.对SSL握手协议细节和实现的介绍第五章.对SSL记录协议细节和实现的介绍第六章.对SSL的安全性分析第七章.举例一种将usbkey融入java JSSE框架的解决方案   · Client 处理和回应 Server Hello 阶段 客户端收到...

2010-02-26 17:22:29 113

原创 深入研究SSL【第二章 part-1】-SSL握手协议的研究

第一章. 对SSL的基本概念和框架的介绍第二章.对SSL握手协议的研究(part-1)第三章.对SSL握手协议的研究(part-2)第四章.对SSL握手协议细节和实现的介绍第五章.对SSL记录协议细节和实现的介绍第六章.对SSL的安全性分析第七章.举例一种将usbkey...

2010-02-25 16:45:51 178

原创 深入研究SSL【第一章】-什么是SSL,SSL如何工作

前段时间项目的关系学习了下SSL,有一些心得体会和疑惑打算一并记录下来和大家分享和讨论一下。这部分内容打算分成如下一些章节来写:第一章. 对SSL的基本概念和框架的介绍第二章.对SSL握手协议的研究(part-1)第三章.对SSL握手协议的研究(part-2)第四章.对SSL握手协议细节和实现的介...

2010-02-23 15:29:29 177

Glassfish v2 替换及使用自定义证书

Glassfish v2 在安装的时候会自动生成一个自签名证书存放在:$glassfish_home/domain/domain1/config/keystore.jks 文件中其中cacert.jks作为truststore库文件,truststore是用来存储可信的客户端的证书。使用上面描述的方法生成一个服务器端使用的个人数字证书:glassfishsrv.pk12修改glassfi...

2008-09-02 21:35:58 189

使用OpenSSL建立根CA及自签名证书制作过程

Openssl版本:0.9.8 版本,可从http://www.openssl.org 处下载。先建立如下目录结构:$home/testca                            # testca 是待建CA的主目录                 ├─newcerts/            # newcerts子目录将存放CA签发过的数组证书(备份目录)        ...

2008-09-02 21:31:31 110

Web应用中的各种路径

Web应用中有各种获取path或URI,URL的方法,假设网页访问地址:http://localhost:8080/tradeload/TestServletWeb应用context: /tradeload 各路径鉴定如下:request.getContextPath()= /tradeload request.getScheme() + "://" + request.getServer...

2008-08-31 19:45:59 106

Glassfish 与 tomcat+ apache 负载平衡 性能对比

Glassfish是sun出品的免费开源支持J2EE 5的服务器,使用ab进行压力测试,在相同的测试环境下和之上所列出来的apache + tomcat负载平衡的配置相比性能要高出一大截。Tomcat + apache负载平衡,在进行了反复的性能调优之后在我机器上的最好情况时 1000个并发6000次请求经常响应失败,平均花费时间20秒,每秒处理事务数最好情况300-400,cpu占用率基本都是9...

2008-08-30 20:09:16 291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除