3.29号的技术沙龙

上周六在北京主持了一场阿里技术沙龙,主题是“中间件与后端技术”,邀请了Redhat的张建锋和搜狐的秦启东分别分享了《Wildfly的新特性以及规划》,《搜狐新闻客户端的push技术》以及中间件团队的封仲淹分享了《JStorm》

相对于Wildfly,我更关注它所用的Undertow的情况,从这里看到一些对比,在纯文本和JSON情况下undertow的性能在netty之上(三轮里有两轮),尽管对这个测试持有一些怀疑,但了解到undertow是jboss团队里核心程序员DavidStuart Douglas在主导的,也是XNIO框架的作者。分享结束后,跟jboss和weblogic的几个开发聊了聊,我们与他们关注的领域有一些差别,主要在解决自己的痛处,偏向运维层面。

搜狐客户端的后台长连接是基于Go语言实现的,最初他们基于MQTT协议实现的Java(Netty)版发现GC引起的抖动没能很好的解决,后来切换到了Go,改写了MQTT,基于goroutine机制实现单机百万的长连接。这与之前淘宝实现web旺旺时的经历有些类似,web旺旺的长连接也是经历了jetty,netty,erlang的过程,也是因为jvm full gc的抖动导致改用了erlang(基于erlang的长连接确实很稳定,但也带来了cpu利用率较高以及不好找人维护的问题)。对GC的调优是门艺术,设置的好的话,基于jvm实现的长连接也是可以达到百万级的。

封仲淹/纪君祥的JStorm分享也有很多干货,他们相当于用java重写了storm,增加了一些特性并做了优化。细节可以看他的ppt,当前内部很多日志处理都是用jstorm在做的。

之前也和邓草原沟通过,希望能交流一下他在豌豆荚怎么用scala构建后端服务的,不过时间上不凑巧,希望下次有机会再切磋。老邓是国内erlang/scala圈子里超级大牛,最早也是用他开发的netbeans插件写scala的。

这些资料可以在: http://club.alibabatech.org/resources.htm 获取,稍后组织方应该会把ppt放上去。也可以关注阿里技术嘉年华的微博

// 补充
建锋写了一些《Undertow服务器基础分析》的博客,很值得参考: 1.概述 2.XNIO 3.Undertow