您的位置:首页 > 业界新闻

淘宝aDev技术沙龙总结:消息中间件和BigPipe

2012-03-18 12:55 309 查看
 
11月26日的aDev技术沙龙是淘宝在北京地区举办的第一次线下活动,本人正好过去凑个热闹,看看牛人们的讨论。

aDev的定位偏后端,本期主题是《异步化技术在大型系统中的运用》,两个话题跟Java消息中间件相关,一个涉及偏前端的BigPipe实现。说是aDev,但其实前两个有关Java消息中间件的话题基本分不清是开发还是运维了,这也算是这个领域的一个发展方向吧。

在分布式互联网技术尚未推进之前,互联网对于中间件的使用主要在Web应用服务器方面,因此中间件一直多用于传统的企业IT架构,对外公开的资料比 较少。过去几年间,随着一些互联网企业规模越来越大,互联网行业也逐渐诞生了一些复杂的需求,这时就引入了更多中间件的功能,用来进行消息的队列处理等事 物。内衣货源网

aDev当天的第一个分享来自淘宝网的马震(@mz1999,花名锋寒),主题是《消息中间件在大型分布式系统的应用》 。 锋寒本次介绍的Java消息中间件在淘宝业务中应用于多个场景,其中包括对可靠性要求最高的订单处理队列。介绍的一共有两套系统,一个是以前就在使用的 Notify,另外一个是从LinkedIn的Kafka改造而来的Metamorphosis。(说句题外话,Notify直译为“通知”,这个倒是好 理解;Metamorphosis的意思倒是比较文艺腔,是卡夫卡《变形记》的英文名,但是不知道典故的人可能会以为是“变态”的意思……)

Kafka采用Scala开 发,这是JVM上的一种函数式兼面向对象式的语言,这几年在开发领域挺被看好的。不过在淘宝这边,却专门用Java重写了一个Meta出来,这是一件很有 意思的事情。根据锋寒的说明,选择用Java重写,一来是因为现有的程序都是Java的,二来是因为目前淘宝内部的Scala人才储备还不够。也许过几年 精通Scala的人多起来了之后,倒是可以考虑采用Scala,毕竟Scala说到底是JVM语言,从Java到Scala的移植毕竟是趋势,在国外也已 经有现成的案例。

另外,听一个人人网后端的哥们儿说,其实像是Scala和Erlang这样声称高效的语言,在实际测试当中发现还是无法满足服务的需求。当然,他是跟C++做比较……

Notify目前已经开源,而Metamorphosis也将在未来某个时间开源。

之后对应用场景的说明很有参考价值,我就直接上图吧:











锋寒之后,是去哪儿网的高级系统架构师孙立(@sunli1223)分享的《高性能队列Fqueue的设计和使用实践》。Fqueue也是一个Java实现的消息队列系统,并且已经开源。Fqueue的不同之处在于它追求的是处理速度最大化,对容灾方面则没有太多考虑,因为去哪儿网并不涉及到订单处理这种对数据安全特别敏感的业务。手机货源网

第三个讲座是新浪微博高级应用开发工程师史罗丹(@Rodin)分享的《新浪微博新版中的Bigpipe Server端的PHP实现》。 BigPipe是Facebook在09年提出的一个动态页面技术,号称在采用了之后“页面加载速度提升了一倍”。Facebook这技术对于咱们这些正 常的网民而言意义不大,不过用在新浪微博上就跟咱有关系啦。其实基本理念不难理解,就是让一个页面分块提交请求,分块加载和渲染,从而有效降低用户的等待 时间。根据罗丹的介绍,新版新浪微博采用这个之后,页面加载速度的提升还是相当明显的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息