- 浏览: 191868 次
- 性别:
- 来自: 上海
最新评论
文章列表
从Tomcat源码分析(二)可知,用户的一个请求会经过n个环节的处理,最后到达开发人员写的Servlet,传给Servlet也就是HttpServletRequest和HttpServletResponse,因此可以认为这一路走下来无非就是把最原始的Socket包装成Servlet里用到的HttpSe ...
- 2013-06-10 13:02
- 浏览 177
- 评论(0)
计费中心一期已做完,今天重新根据已开发的代码画了下类图和时序图,发现和项目开发之前画的有了很大变化,这说明之前的架构设计缺乏稳定性,经不起开发细化过程中的推敲。因此有必要对比一下改动点,吸取经验,争 ...
- 2013-06-10 13:02
- 浏览 246
- 评论(0)
AOP是Spring的核心,Spring不但自身对多种框架的集成是基于AOP,并且以非常方便的形式暴露给普通使用者。以前用AOP不多,主要是因为它以横截面的方式插入到主流程中,担心导致主流程代码不够清晰,定位问题不够方便,而在计费二期的项目里需要一个很适合用AOP来做的功能,就是要把对外接口和所调用的外部接口的耗时时间给记录下来,这个需求主要来自于计费一期的联调,常常发生系统间交互不够顺畅的情况,这就需要看每个接口调用时间来判定是谁的问题。
计费中心是整个后台系统的中间环节,与其他系统交互很多,这样的接口也很多,如果在每个接口的调用前后加时间记录比较繁琐,也影响主流程代码的美观,因此比 ...
- 2013-06-10 13:02
- 浏览 308
- 评论(0)
今天支付宝架构师蔡学镛给我们做了次有关PPT的分享,以前只知道蔡学镛是位Java大师,今天才知道他在演说和分享方面也颇有心得,听完分享感觉非常有收获,很值得总结一把。
今天他做分享的PPT就很有示范作用,非常符合他所宣扬的PPT原则和要领,链接如下:
http://www.slideshare.net/heypig/caffeinenicotine-ppt
分享要点如下:
1)做PPT犹如做生鱼片,分为材料+结构+修饰三个要素
2)材料要点
目标听众正确
材料展示要精简
学会说故事
内容容量相当于书的一章
要点不要超过7个
时间不要超过90分钟
3)结 ...
- 2013-06-10 13:02
- 浏览 324
- 评论(0)
HDFS+MapReduce+Hive+HBase十分钟快速入门
1.前言
本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译、安装和简单的使用。
2.Hadoop家族
截止2009-8-19日,整个Hadoop家族由以下几个子项目组成:
成员名
...
- 2013-06-10 13:02
- 浏览 290
- 评论(0)
nio不太好理解,tomcat6在nio方面做了不小的支持,从那里可以学习到如何用好nio,下面是几张在网上找到的关于nio的架构图,可以帮助理解
BIO与NIO的区别:
tomcat 5与tomcat 6 的区别:
tomcat5:
tomcat6:
- 2013-06-10 13:01
- 浏览 415
- 评论(0)
最近常有数据库和网络设备升级和搬迁等事情,而各个应用都是基于数据库连接池做的,大部分都是基于C3P0,数据库或网络状况的变动都会导致客户端连接池中的connection失效,如何剔除这些blocked connection就和C3P0的各个配置息息相关。这两天,搭了个实验环境,根据C3P0的配置说明和实验结果,把C3P0关于这块的机制解析了一番。先看看我的结论:
1)C3P0容错和自动重连与以下配置参数有关:
breakAfterAcquireFailure:true表示pool向数据库请求连接失败后标记整个pool为block并close,就算后端数据库恢复正常也不进行重连,客 ...
- 2013-06-10 13:01
- 浏览 382
- 评论(0)
RPC(远程过程调用)是一种调用远程程序的协议,可以实现RPC的方案很多,比如RMI、Hessian,还有公司自己开发的dbo和TB-Remoting(实际上是基于Hessian和mina实现的),各种RPC的API差异很大,很多系统之间的远程接口调用总会就RPC的调用细节花费很多时间,因此设计一个实现细节对调用者透明的RPC统一框架是非常必要的。最近在学习公司平台产品dubbo时,就发现提供了一套封装多种实现的RPC设计,框架的大体类图如下所示:
服务的发布者和调用者都基于以上接口来完成RPC发布和调用,dubbo默认提供三种RPC具体实现方案,分别是RMI、Hessian和 ...
- 2013-06-10 13:01
- 浏览 204
- 评论(0)
在项目过程中,通过观察,感觉做好PM这个角色需要做好以下几点:
对项目关键点的细节要足够了解
虽然PM可以不参与具体的编码工作,但并不等于不需要了解具体的实现细节,特别是一些影响项目成败的关键点。有些PM离技术越来越远,远到一些功能是怎么实现的、用的是什么技术、有哪些地方需要特别注意都不清楚,这会非常影响他的决策力和判断力,特别是在处理突发事件时会手足无措。在现阶段,特别是项目规模不大的情况下,感觉PM兼任架构师比较好。
对项目各个阶段的时间点要足够清晰
PM头脑得时刻有一个清晰的项目roadmap,并对每个时间点做好准备,比如在项目立项前,预估好工作量和资源分配,与其他团队协调 ...
- 2013-06-10 13:01
- 浏览 124
- 评论(0)
web服务器并发策略无外乎从连接方式和IO策略上做文章了。
连接方式有短连接和长连接之分,并且也有单进程和多进程之分。
IO策略有阻塞和非阻塞之分,也有同步和异步之分。
以上这些概念不做过多解释,关键看看有哪些组合,其实常见的web服务器并发策略就是这些方式的组合。
一个进程处理一个连接,非阻塞I/O
这种策略下又分为:
1)主进程使用非阻塞啊accept()来接收连接,当建立连接后,主进程将任务分配给空闲的子进程来处理
2)所有子进程使用阻塞accept()来竞争接收连接,一旦一个子进程建立连接后,它将继续进行处理
其中,apache prefork采用方式2 ...
- 2013-06-10 13:01
- 浏览 233
- 评论(0)
web服务器都提供长连接的方式,所谓长连接就是客户端一次请求完后,不关闭连接,保持一段时间的连接,下次此客户端再次请求时,不用创建新连接,复用所保持的连接即可。从理论上,长连接可以免去大量建立和关闭连接的资源消耗,但同时也有大量连接被占用的代价。因此可以初步判断长连接比短连接能带来更高的TPS,更低的CPU消耗,更少的IO,更高的内存占用,下面通过实战来验证。
服务器环境和测试工具可以见工具和环境准备篇
本次web服务器选用apache prefork模式,apache长短连接的选择可以配置httpd.conf里的KeepAlive选项,如:
KeepAlive On:长连 ...
- 2013-06-10 13:01
- 浏览 200
- 评论(0)
1.长期的任务,要尽早开始
一般来说,长期任务总是比较烦人,也有难度,而人心里总有逃避困难的趋势,最后的结果或者是最后干脆放弃,或者是剩下一点点时间手忙脚乱地赶工;我自己之前也有这样的教训,自欺欺人地 ...
- 2013-06-10 13:01
- 浏览 146
- 评论(0)
前天遇到一款软件叫prezi,让我兴奋地晚上睡不着觉,用它可以很轻松地做出具有颠覆性的presentation简报,废话不多说,来看看我花了一天的功夫做的成品(正好明天有个分享需要做):
http://prezi.com/rkjumcjeeo4w/teamforge-vs-alm-ali ...
- 2013-06-10 13:01
- 浏览 245
- 评论(0)
1.浪潮之巅
推荐理由:帮助我们从程序员这样的小角色跳出来,以更宽视角重新认识我们从事的这个行当,只有吴军这样的大师才能写出这样的巨著
2.数学之美
推荐理由:吴军又一本让我痴迷的书,要是当年读了这本书,不至于枉费4年数学系的生涯
3.
- 2013-06-10 13:00
- 浏览 384
- 评论(0)
最近在看《深入理解Java虚拟机》,书中给了几个例子,比较好的说明了几种OOM(OutOfMemory)产生的过程,大部分的程序员在写程序时不会太关注Java运行时数据区域的结构:
感觉有必要通过几个实在的例子来加深对这几个区域的了解
1)Java堆
所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示:
[java]view
plaincopy
- 2013-06-10 13:00
- 浏览 330
- 评论(0)