Apache RocketMQ 社区创建和协同创新

小编:管理员 358阅读 2022.07.29

去年,我曾经撰写了一篇关于 非英语系国家的社区是如何理解并使用 Apache way 进行开放式创新 的博客。在那篇文章里,我表达了作为一名开发者的期待,即能够熟练地使用邮件列表功能,认真倾听社区的声音,再做出决策。此外,开源社区也可以多开展类似“ GSoC ”这样的编程活动,以帮助开发者更了解社区的开发流程,同时为开发者加入社区提供了鼓励和帮助。之后我一直在想是否能够通过更生动形象的案例,为大家带来更多精彩的分享。今天,我非常荣幸能在即将到来的 ASF 周年庆典上与社区分享一些有关 Apache RocketMQ 社区创建和协同创新的故事。

进击的 RocketMQ 社区

自2016年加入 Apache Incubator 以来, Apache Way 极大地帮助了 Apache RocketMQ 发展其社区。Apache RocketMQ 最初是被用在电商交易核心链路中的分布式消息传递引擎,每天承担了许多公司万亿级的信息传输与流转,可以说是一款非常适合大规模分布式场景下的高吞吐,低延迟的消息传送系统。为了帮助大家更好地了解消息引擎,Linux 基金会在标准的消息开放传递项目上也提供了一个通用的基准测试平台。当然,作为一款广受欢迎的消息产品,在功能设置上,RocketMQ 提供了同时“接收”和“推送”两种服务,并支持消息预定,定时发送,批量处理,消息传播并过滤等功能。尽管其几乎可以适用于所有典型事件响应或消息通讯场景,但不可否认,其仍有些许核心功能没有被开发。

去年, RocketMQ 社区曾发布了三个吸睛的特性:事务消息,消息轨迹和安全认证。其中“事务消息”这一功能是一个由来自金融业的个体倡导并贡献的,成功实现了保证“发送者”和“本地业务操作”之间的事务一致性,非常具有价值和意义。基于“事务消息”,或许我们还可以构建一个适合于长期运行的微服务的全栈分布式事务平台,并开发给社区,以供有需要的朋友研发。而另外两个由社区提交的 RIP 研发功能——消息轨迹和消息认证,地位同样不可忽视。

Apache RocketMQ 交流研讨会

在消息传送的企业小程序中,一直都有一个比较棘手的问题:“我的消息到底发送到了哪里?如果发送失败,我如何才能找到消息轨迹?”这是个较难以解决的任务,特别是当我们提供云发布和订阅服务的时候,因为消息传递不是一个同步的解耦过程,理所当然,开发端的上游和下游互不相关。幸运的是,中国移动研究所曾在 Apache RocketMQ 交流会上认识了项目管理委员会成员,并提及了他们遇到的麻烦。 因此,我们向他们展示了来自社区的最新 RIP 计划,这对于 Apache RocketMQ 内部代码来说是一个非常具有挑战性的进步。在项目管理委员会的帮助下,RIP 被提出、讨论和最终被认可接纳。 经过充分的酝酿和准备后,我们开始对其进行了设计和编码,并交换各自对于代码实现的看法,期间多次举办交流会以讨论和审查该代码特效,直至它被在线验证并发布。有趣的是在评审过程中,社区的另一个云供应商也加入了进来,经过简单交谈后,原始的实施方案被优化,从而使得其与实施方式更相兼容。 我们很高兴地看到,在社区里,两个云供应商在生产过程中就已经完成了新版本的验证。ACL 特性,也是在项目管理委员会和社区持续协作的过程,才发布了 RIP 的最终版本。

通过交流研讨会,我们可以收集需求,然后公开讨论,再加上 Zoom 视频沟通,RocketMQ 社区在去年就发布了多个重要的版本。同时,为了更好地促进生态繁荣,我们对 Apache RocketMQ 外部存储库下的几个项目进行了重新组织(80%以上项目由社区在孵化期间作出了贡献)。 除了在设置领域取得里程碑进展,我们还增加了类似的“孵化”和“毕业”机制,进一步降低了社区参与的门槛,同时更好地保证了产品质量。 时至今日,许多已毕业的语言不同的 SDK 项目都是得益于庞大用户的使用和贡献而形成的。公众的热情完全超乎想象,它还验证了未来的云体系结构是无关语言差异,甚至是无关服务器差别的。在这一趋势引领下,社会各界人士积极参与了 RocketMQ 多语言生态建设。RocketMQ 现在不仅支持Java 、CPP 、Python 、Go 、Nodejs ,还支持其他语言。当前的CPP 客户端甚至可以支持多达8个平台,例如可在 CentOS 、MacOS 、Ubuntu 和 Windows 上运行。

来自社区的开发人员

不仅如此,越来越多的社区爱好者也自发地开展了自我组织:他们也在积极规划类似“城市车站”活动,但也仍需要得到一些 PMCs 的重视和鼓励。同时,这也促使我们思考 Apache 社区是否应该有一个面向开发人员的管理者角色,比如——开发人员关系维护者和项目经理,以便让更多的用户了解并更参与到产品开发中。

近年来,社区发展也给 RocketMQ 社区注入许多新鲜血液,社区涌入越来越活跃的开发人员。仅仅三个月,开发人员的电子邮件列表中就发送了近2000封电子邮件。 数据表明,中国70%的银行总部在核心业务上使用着 Apache RocketMQ ,约60%的互联网金融和保险客户使用着 RocketMQ ,覆盖率在中国排名前20的互联网公司中也高达75%。

RocketMQ 社区最近一直在探讨关于新一代信息流平台的研发,我们希望它将成为一个具有轻量级数据处理平台的统一消息传递引擎,同时也非常欢迎大家参与进来,告诉 PMC 您最期待在 RocketMQ 的最新版本中看到的哪些功能。

关联标签: