47

Apache 基金会总结 RocketMQ:中国 70%的银行核心业务已采用,国内技术人员贡献明显...

 5 years ago
source link: https://www.infoq.cn/article/IlP-Jk87KLyw63uDfNA8?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Apache 生态利用社区建立了一种极其有效的开放式创新 Apache Way,旨在通过社区声音、邮件列表以及项目管理委员会完成对 Apache 产品的快速迭代。 Apache RocketMQ 项目管理委员会成员 Von Gosling 对 RocketMQ 这款企业级产品在项目和社区上的项目前景进行了 分享和介绍 ,本文通过他的分享也希望读者能更多地参与 Apache 社区的推广和问题解决。

2018 年 Von Gosling 发表了一篇文章 来自非英语国家的社区如何理解并使用 Apache 方式进行开放式创新 ,表达了开发人员希望有一个开放的社区环境,善于使用邮件列表,能倾听社区的声音并及时做出响应和决定。本文,Von Gosling 通过一些实际的例子分享了一些 Apache RocketMQ 社区建设和如何协作创新的故事。

Apache RocketMQ 前景

Apache RocketMQ 最初是用在线电子商务事务处理的分布式消息传递引擎,可以在许多公司的生产环境中进行数十亿甚至数万亿的信息传输。

优点

  • RocketMQ 已被证明适用于大规模分布式场景中的高吞吐量、低延迟消息传递系统。
  • Linux Foundation 上的标准 OpenMessaging 项目为云中的分布式消息传递系统提供了一个通用的 基准测试平台 ,Apache RocketMQ 是参考的基准之一。
  • 作为一个广泛使用的消息传递引擎,RocketMQ 提供了拉动和推送模型,支持预定消息、有序消息、批量消息、广播消息、消息过滤、死信队列(dead-letter Queue)等,几乎支持所有经典事件驱动或流媒体场景。

RocketMQ 正在尝试去补充一些还未能在企业级进行支持的核心功能。

新功能

去年,RocketMQ 社区宣布了三个有吸引力的功能: 事务性消息消息跟踪身份验证和授权

  • 事务性消息保证了发送方和本地业务操作之间的事务一致性。此功能是一个非常有价值的功能,由金融行业的几个人发起和贡献。基于事务性消息,我们可以构建一个全栈分布式事务平台,适用于需要长期运行的微服务。

Apache 生态

问题

在采用消息传递机制的企业级应用程序中,始终存在一个令人不安的问题:我的信息发送到哪里了? 消费者接收成功或失败,我如何找到消息历史?这是一项非常困难的任务,特别是当提供云发布 / 订阅服务时,因为消息传递是一种异步解耦过程,上游和下游相互之间并不了解。

一个例子

幸运的是,中国移动研究院的一些人在 Apache RocketMQ Meetup 上找到了项目管理委员会(PMC)的成员,并告知了他们碰到的问题。PMC 成员向他们推荐了社区中最新的 RIP 计划 ,这项计划是 Apache RocketMQ 内部代码非常有挑战性的一次优化和改进。在 PMC 成员的帮助下,他们一起补充、讨论并接受了这项改进计划。Von Gosling 透露到,经过一段必要的时间规划,RocketMQ 开始设计、编码和讨论,交换代码并实现细节。其中包括几个聚会,聚集在一起讨论和审查代码,直到后来的在线验证和发布。更有意义的是,在审核过程中,来自社区的另一个云供应商还参加了进来。通过简单的视频通信,最初的实现被优化并解决了兼容性问题。在社区中,最后的新版本由两家云供应商在生产中进行了验证。通过 ACL 提供的功能,PMC 和社区持续协作,最终发布了 RIP 计划的最终版本。

社区的工作

通过聚会收集要求,通过公开讨论,再加上使用 Zoom 的视频通信,RocketMQ 社区在去年完成了几个重要的发布。同时,为了更好地促进生态繁荣,还对 Apache RocketMQ 外部存储库下的几个项目进行了重组(80%以上是在孵化期间由社区贡献的项目)。除了设定里程碑,增加了类似的孵化和毕业机制,进一步降低了社区参与的难度,同时更好地保证了产品质量。今天,已经毕业的几个不同语言的 SDK 项目来自大量使用和维护的用户,社区的热情甚至超越了想法。它还验证了未来的云架构是独立于语言的,甚至是无服务器的。在这一大趋势下,社区积极参与了 RocketMQ 多语言生态建设。RocketMQ 现在支持 java、cpp、python、go、nodejs,其他语言也在计划中。目前的 CPP 客户端最多可支持 8 个平台,如 CentOS、MacOS、Ubuntu 和 Windows。

RocketMQ 社区

不仅如此,越来越多的社区爱好者也自发地组织起来:他们积极地策划城市车站等类似活动,也需要 PMC 给予一些关注和鼓励。与此同时,Apache 也在思考社区是否应该有类似发布经理一样面向开发人员的角色,比如开发人员关系维护者或项目经理,以便获得更多用户的理解,更多地参与到产品中来。近年来社区的发展也给 RocketMQ 社区带来了许多新的气象,出现了越来越多的活跃开发者。在最近的大约三个月内,从 dev 电子邮件列表发送了近 2,000 封电子邮件。研究表明,中国 70%的顶级银行在核心业务链接上使用 Apache RocketMQ,大约 60% 的互联网金融和保险客户在其生产环境中使用 RocketMQ,中国 20 强互联网公司中 75% 广泛采用经典的 pub/sub 场景。

最近,RocketMQ 社区一直在讨论下一代消息传递平台的开发。Von Gosling 表示,RocketMQ 希望它会是一个带有轻量级数据处理平台的统一消息传递引擎,并欢迎大家参与其中,告诉 PMC 您在未来版本的 RocketMQ 中期待看到哪些功能。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK