最近一段时间才开始关注云栖社区的公众号,在两周前看到要在深圳科兴科学园办一场RocketMQ的Meetup。因为从来没有参加过这种线下活动,而且对RocketMQ比较感兴趣,所以就立即报名参加。
报完名就把这件事给忘了,直到周五收到短信才又想起来,周六中午才决定要去。
回顾Meetup
我一开始想着掐点进场,后来还是提前半个小时就到了地方。幸亏早到了,因为这次想要参加的人非常地多,虽然会议室很大,但座位还是不够。后面到的人,只能是坐小板凳,挤在四周的过道里。
简单回顾
Meetup在两点钟准时开始,第一位分享的嘉宾非常年轻,13年毕业的。年轻归年轻,但是无论是对分享内容的把握,还是口头表达能力,都非常出色。他讲完之后,会让人提问题,提问题的人可以在会议结束之后领一件RocketMQ的定制T恤。
紧接着,后面还有两位分享嘉宾。等他们都分享完之后,上半场就结束了。主办方还准备了茶点。我因为下午要赶着去亲戚家做客,就直接溜了,下半场就没有参加。
Meetup全程有直播,可以点击链接深圳站Meetup看录像回顾。
现场气氛
有人可能会说,既然网上有直播和录像,为什么还要费劲去现场参加呢?
其实这有点像在电影院看电影跟在家里用电脑看电影,很大的一个区别就是气氛。我晚上回到家用电脑看录像,感觉就完全不一样。
千万别小看气氛,气氛对我们的学习积极性是有很大影响的。举个例子,我们在中学的时候都要上晚自习,即便一整个晚上都不跟其他同学说话交流,学习效率都要比一个人在家自习要高。
这次参加会议的有将近三百个人,听起来不多。但是如果身临现场,看到这么多人坐在一起,每个人的脸上都显现出对技术的兴趣和专注,你真的会有不一样的感受。就像中学生晚上路过一个坐满人又非常安静的自习室那样,他心里唯一的想法就是:“回去之后一定要好好学习。”
高质量交流
参加Meetup的好处还有很多,其中之一就是可以获取到高质量的信息渠道。第一位分享嘉宾就在一开始推荐了他在知乎上写的专栏——《RocketMQ详解》。我用了一个晚上的时间,把它们都打印出来看完,收获非常大。
Meetup有一个微信群,大家没有在里面讨论技术的问题,但是会分享一些资源和连接,例如分享嘉宾的PPT,例如现场直播的录像地址。另外,几乎每个分享嘉宾都会在讲演的一开始公布自己的联系方式,只要在电邮的一开头说“我听过你在某年某月某日在某地Meetup的分享,收获非常大,谢谢你”,再想寻求帮助和合作就会比较容易一些。
到了现场,面对面的交流机会要多得多,也要好得多。通过网络联系这些技术大牛,他们可能会因为工作忙而忽略这些消息,也可能会因为不认识你而不愿意回应。但是Meetup就不一样,他们来到现场本来就是要分享和交流的,只要你友好而礼貌地跟他们搭话,他们都会非常愿意跟你讨论。
为什么选择RocketMQ
Message Queue,消息队列是后台开发不可缺少的一个模块。只要你做的是跟后台开发相关的工作,就不能对它不了解。现在比较流行的开源MQ组件有好几个,其中比较热门,也是我就职公司采用的Rabbit MQ。
那为什么我还要花时间去学习和研究RocketMQ呢?
开源
首先第一条理由就是,RocketMQ跟Rabbit MQ一样,都是开源项目。选择开源项目有哪些好处就不多说了,懂的都懂。虽然这跟Rabbit MQ对比不是一个优势点,但起码不是劣势点。
基于Java
众所周知,Rabbit MQ是用Erlang语言写的。作为Java开发人员,要想对它的内核有一个本质上的理解就比较困难,学习一门新语言的代价不小。如果还想对这个项目进行定制化改造,那就更是难上加难了。
RocketMQ是基于Java语言的开源项目,对于我们来说,就有天然的巨大的优势。看Java源码,总比看其他语言写的源码要轻松地多。如果想要根据自家公司业务的需要进行优化、改进,都会简单得多。
经受过考验
RocketMQ一开始是阿里巴巴的内部项目,经过了多年双十一的考验。淘宝天猫双十一,是中国互联网应用场景中高并发、高可用、分布式的经典案例。所以说,RocketMQ的实用性是显而易见的。
在阿里巴巴把这个项目捐献给Apache之后,用了大概十个月左右的时间就成为顶级项目。这就说明,它的开源性已经得到了全球最权威组织的认可。
学习一个开源项目,并不是一件很轻松的事,需要付出时间和精力。因此,选择一个经受过多方考验的开源项目,是一个比较明智的选择。
参加到开源当中去
其实我一直对开源社区很感兴趣,但是一直都没能真正参与到里面。相信有很多人都跟我一样,有想法,但是还没付诸实践。
在分享会中,其中一位嘉宾提到了如何参与到开源项目当中去。首先你要使用这个开源项目,例如RocketMQ,成为RocketMQ的User。在深度使用之后,你会发现一些问题,例如bug,就可以提交上去。如果被采纳之后,你就很可能成为RocketMQ的Contributer。如果你对项目非常熟悉,工程能力比较强,也愿意花时间帮忙修bug或者写一两个新特性,那么在完成之后,你就有机会成为RocketMQ的Commiter。随着你对项目的贡献越来越大,最终有可能成为RocketMQ的PMC。
除了以上提到的角色之外,还有帮忙写文档的Writter,帮忙做测试的Tester,还有负责安全的小组等等。
据我所知,现在RocketMQ还没有中文文档。我打算自己试着在github上开一个项目,自行翻译。如果有感兴趣的同学可以一起参加进来。如果发展得不错的话,就可以联系RocketMQ的委员会,看看有没有机会可以为开源项目做贡献。
当然了,现在还只是一个想法,太长远的事情还不敢太多想。但是,玩一玩总是没有坏处的。
我有一个公众号,经常会发一些看书思考过后写的文章。如果你喜欢我的文字,可以用微信搜索“李文业的思考笔记”或者扫描二维码关注。