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

原创
系统
11月26日的aDev技术沙龙是淘宝在北京地区举办的第一次线下活动,aDev的定位偏后端,本期主题是《异步化技术在大型系统中的运用》,两个话题跟Java消息中间件相关,一个涉及偏前端的BigPipe实现。

11月26日的aDev技术沙龙是淘宝在北京地区举办的***次线下活动,本人正好过去凑个热闹,看看牛人们的讨论。

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

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

aDev当天的***个分享来自淘宝网的马震(@mz1999,花名锋寒),主题是《消息中间件在大型分布式系统的应用》 (PPT下载:http://t.cn/S44ZIY)。锋寒本次介绍的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也将在未来某个时间开源。(更正:Notify项目并未开源,最初的信息有误,造成不便还请谅解)

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

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

第三个讲座是新浪微博高级应用开发工程师史罗丹(@Rodin)分享的《新浪微博新版中的Bigpipe Server端的PHP实现》(PPT下载:http://t.cn/S44UvQ)。BigPipe是Facebook在09年提出的一个动态页面技术,号称在采用了之后“页面加载速度提升了一倍”。Facebook这技术对于咱们这些正常的网民而言意义不大,不过用在新浪微博上就跟咱有关系啦。其实基本理念不难理解,就是让一个页面分块提交请求,分块加载和渲染,从而有效降低用户的等待时间。根据罗丹的介绍,新版新浪微博采用这个之后,页面加载速度的提升还是相当明显的。

三个讲座结束之后有一段很搞笑的招聘节目,人人网、腾讯、新浪、阿里云、当当网的几位仁兄都上去宣传了一下各自团队的发展理念,人人网的老兄还表示明年也会举办类似的线下活动。最近一年来技术类线下活动的爆发式增长,以及互联网企业举办这些可以让其他公司的工程师上来分享和招人的线下活动其实是个挺有意思的现象,回头我会就这个话题再写一些后续的内容,这次就略过了。

淘宝的大部分线下活动都在杭州,感兴趣的同学们可以关注淘宝技术嘉年华的新浪微博

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2015-08-11 11:16:36

淘宝中间件

2023-06-29 10:10:06

Rocket MQ消息中间件

2023-10-24 07:50:18

消息中间件MQ

2011-05-24 15:10:48

2021-12-14 10:39:12

中间件ActiveMQRabbitMQ

2022-11-02 10:08:46

分布式高并发消息中间件

2022-10-28 13:33:05

Push模式互联网高并发

2023-04-26 07:57:29

软件架构设计

2019-11-12 08:40:03

RocketMQ架构

2020-02-10 15:30:51

数据库MySQLDAL

2019-09-29 11:04:22

MySQL数据库Atlas

2023-05-08 08:09:26

路由元信息谓词

2022-08-09 08:31:29

RocketMQ消息中间件

2011-12-15 01:10:03

ibmdw

2022-05-10 09:24:44

中间件应用方案

2022-10-21 10:48:17

消息中间件互联网应用协议

2022-02-13 23:04:28

RedisRabbitMQKafka

2024-01-24 08:19:02

Stream应用场景注解

2023-04-28 08:23:51

软件架构设计

2019-07-19 07:56:13

消息队列消息代理消息中间件
点赞
收藏

51CTO技术栈公众号