Let’s beat the rpc benchmark record,current is 168k!

4 Comments

Many applications need rpc to realize their business,in java world,we can choose rmi/webserivce to do rpc,but they’re not fast enough for most cases,so many of us choose some difference high performance network framework to realize rpc,such as mina,netty,grizzly,also we can choose some cross-language framework,such as thrift.
I wrote an abstract rpc framework to intergrate difference network framework more quickly,and also I intergrate mina/netty and do a benchmark on them,hope some of u can give some advices or attend the project to modify code or integrate other network framework,current benchmark record(single connection,100 concurrents) is 168k created by grizzly-rpc & protobuf,let’s beat the rpc benchmark together,u can find more details at here.

记录帖:碰到的一些Java问题(更新于2013-03-06)

11 Comments

这个贴用于记录自己碰到过的一些Java问题,会根据经验不断增加,以便总结,:)

《分布式Java应用:基础与实践》样章、代码、纠错、补充

153 Comments

《分布式Java应用:基础与实践》一书中会存在一些错误的地方,以及一些尚未深入讲解的部分,在这篇文章里会提供纠错的信息以及补充的内容的文章的链接,关于书中错误的部分,还请各位海涵和帮助指正。

样章请从此下载:
http://bluedavy.com/book/booksample.pdf

随书的代码请从此处下载:
http://bluedavy.com/book/source.zip

一次非常诡异的CMS GC频繁问题的排查

No Comments

问题现象: 有个应用每天都从半夜3点多开始一直频繁CMS GC,通常要持续到早上9点半以后,GC log部分内容如下: 2013-02-26T03:48:12.799+0800: 35183.494: [GC [1 CMS-initial-mark: 945042K(2146304K)] 1551093K(4023680K), 2.1342540 secs] [Times: user=2.13 sys=0.00, real=2.13 secs] 2013-02-26T03:48:14.934+0800: 35185.629: [CMS-concurrent-mark-start] 2013-02-26T03:48:20.074+0800: 35190.769: [CMS-concurrent-mark: 5.140/5.140 secs] [Times: user=5.13 sys=0.00, real=5.14 secs] 2013-02-26T03:48:20.074+0800: 35190.769: [CMS-concurrent-preclean-start] 2013-02-26T03:48:20.082+0800: 35190.777: [CMS-concurrent-preclean: 0.008/0.008 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 2013-02-26T03:48:20.082+0800: 35190.777: [CMS-concurrent-abortable-preclean-start] CMS: abort preclean due to time 2013-02-26T03:48:25.561+0800: 35196.256: [...]

一个Java应用频繁抛异常导致cpu us诡异现象的案例

4 Comments

某Java应用在生产环境运行时cpu us呈现了非常诡异的现象,在qps(每秒请求数)基本稳定的情况下,cpu us会进入一个上涨–迅速下降然后又上涨的循环中,我第一眼看到这cpu us的图的时候都以为是java gc的图,于是着手排查是什么原因造成的。

知名网站的技术实现

No Comments

在上一篇《知名网站的技术发展历程》中,介绍了一些知名网站在发展的过程中技术的演变,在这篇文章中则会根据这些网站的发展经验,来总结通常网站是如何来应对可伸缩性、可用性、高性能以及低成本这四方面的挑战的。

知名网站的技术发展历程

No Comments

总共有两篇,分别发表在《程序员》杂志的5月刊和6月刊,暂时还只能公开第一篇,第一篇中介绍了一些Alexa排名较前的网站的技术发展历程,第二篇总结了这些网站是如何来应对可伸缩性、可用性、高性能以及低成本的挑战的。

文中其实有很多链接,建议大家下载pdf版本

互联网已经发展多年,其中不凡脱颖而出的一些网站,这些网站多数都已存在了接近10年或10年以上,在这么多年的发展过程中,除了业务上面临的挑战外,在技术上也面临了很多的挑战。
在这篇文章中,我挑选了一些Alexa排名较前的网站(http://www.alexa.com/topsites),看看它们在技术是如何应对业务发展过程中的挑战的(由于一个网站需要很多方面的技术支撑,这里不可能全部覆盖,这里更多的是着重在其主要业务的网站的相关技术),所有的资料全部来源于网上,如有错误欢迎指正。

Java内存管理问题案例分享

No Comments

在这个slide中分享了Java内存管理常见的三类问题(OOM、Full GC频繁、CMS GC Promotion failed || Concurrent mode failure)的case,以及通常的解决方法。

迁户口实录(深圳集体户到杭州个户)

No Comments

迁户口这件事对于中国人而言,在一辈子中总是会发生那么几次的,但由于现在在迁户口的流程方面缺失透明性,往往会导致在这个过程中要折腾很多次才能办好,此篇blog记录了我的迁户口过程,整个过程从2011年12月19日折腾到2012年3月9日才办好,中途很多次折腾都是因为对过程需要提交的材料准备不足造成的,希望能给需要迁户口的同学们一点点帮助。

Java应用运维

No Comments

对于互联网产品或长期运行的产品而言,运维工作非常重要,尤其是在产品复杂了以后,在这篇blog中就来说下Java应用的运维工作(ps:虽然看起来各种语言做的系统的运维工作都差不多,但细节上还是会有很多不同,so本文还是只讲Java的)。

Older Entries