RocketMQ

是一个来自阿里巴巴的分布式消息中间件,于2012年开源,并
在2017年正 式成为Apache顶级项目。

RocketMQ 5.0专注于消息基础架构的云原生化演进,聚焦在消息领域的后处理场景, 支持消息的流式处理和轻计算,
帮助用户实现消息的就近计算和分析,并将全面拥抱 Serverless和EDA。

RocketMQ从设计之初就立足于在线交易链路,因此主要应用在大型在线系统的异步
化处理。

大规模落地场景

电商物流的交易系统、在线教育课程系统、大型游戏信令系统、以及银行交易系统,这些都大量使用了RocketMQ来做
异步解耦和削峰填谷;同时在非在线业务的场景里,大量车联网、电商网站基于RocketMQ实现IoT边缘数据以及C端用户行为数据采集传输和集成。

开源至今,RocketMQ的核心架构大约经历了四个重要的演进阶段:

第一代RocketMQ其实是采用了推模式,数据存储采用关系型数据库。在这种模式下 消息具有很低的延迟特性,并且很容易支持分布式事务。在阿里淘宝这种高频交易场景 中,具有非常广泛的应用。

第二代RocketMQ在服务于交易场景基础上开始探索自研存储引擎,这个版本采用了 拉模式和自研的专有消息存储,在日志处理方面能够媲美Kafka的吞吐性能。
在前两代初步打磨了自研的存储引擎后,RocketMQ 3.0的重构前瞻性地去除了 ZooKeeper等组件的外部依赖,并支持了单机海量Topic。而刚好在前不久,我们也报道 过消息系统Kafka去除ZooKeeper依赖。

第四代RocketMQ在高可靠低延迟方面重点优化,构建了全新的低延迟存储引擎、新 增了Raft多副本存储能力、提供了丰富的消息特性。

架构:

本文总阅读量