Apache RocketMQ
![]() | |
Developer(s) | Apache Software Foundation |
---|---|
Initial release | 2012 |
Stable release | 4.2.0
/ April 27, 2018 |
Repository | |
Written in | Java |
Operating system | Cross-platform |
Type | Stream processing, Message broker |
License | Apache License 2.0 |
Website | rocketmq |
RocketMQ[1] is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It is the third generation distributed messaging middleware open sourced by Alibaba in 2012. Through several years of technical improvement, RocketMQ is now capable of transferring trillions of concurrent online messages as of Alibaba's Nov. 11th Shopping Festival. On November 21, 2016, Alibaba donated RocketMQ to the Apache Software Foundation. Next year, on February 20th, the Apache Software Foundation announced Apache RocketMQ as a Top-Level Project. Nowadays, RocketMQ is widely used by thousands of companies, and research and educational institutions around the world.
History
RocketMQ's evolution can be divided into three stages.
Features
Much comparison have been made between all kinds of messaging solutions, there is a table demonstrates the comparison between RocketMQ, ActiveMQ and Kafka up to December 17, 2016[2]:
Messaging Product | Client SDK | Protocol and Specification | Ordered Message | Scheduled Message | Batched Message | BroadCast Message | Message Filter | Server Triggered Redelivery | Message Storage | Message Retroactive | Message Priority | High Availability and Failover | Message Track | Configuration |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ActiveMQ | Java, .NET, C++ etc. | Push model, support OpenWire, STOMP, AMQP, MQTT, JMS | Exclusive Consumer or Exclusive Queues can ensure ordering | Supported | Not Supported | Supported | Supported | Not Supported | Supports very fast persistence using JDBC along with a high performance journal,such as levelDB, kahaDB | Supported | Supported | Supported, depending on storage,if using kahadb it requires a ZooKeeper server | Not Supported | The default configuration is low level, user need to optimize the configuration parameters |
Kafka | Java, Scala etc. | Pull model, support TCP | Ensure ordering of messages within a partition | Not Supported | Supported, with async producer | Not Supported | Supported, you can use Kafka Streams to filter messages | Not Supported | High performance file storage | Supported offset indicate | Not Supported | Supported, requires a ZooKeeper server | Not Supported | Kafka uses key-value pairs format for configuration. These values can be supplied either from a file or programmatically. |
RocketMQ | Java, C++, Go | Pull model, support TCP, JMS, OpenMessaging | Ensure strict ordering of messages,and can scale out gracefully | Supported | Supported, with sync mode to avoid message loss | Supported | Supported, property filter expressions based on SQL92 | Supported | High performance and low latency file storage | Supported timestamp and offset two indicates | Not Supported | Supported, Master-Slave model, without another kit | Supported | Work out of box,user only need to pay attention to a few configurations |
Architecture

RocketMQ consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single point of Failure. As shown in image left[3].
NameServer Cluster
Broker Cluster
Producer Cluster
Consumer Cluster
Applications
There are at least five aspects Apache RocketMQ could relate to[4]:
- The integration of heterogeneous systems;
- Decoupling between applications;
- Backbone in the event-driven mechanism and complex event architecture model;
- Data replication channels;
- Integration with flow calculation engine.
Open Source and Community Maintenance
The RocketMQ team have done much to active the community.
Rewards
2016 China’s most popular open source software award
2017 China’s most popular open source software award
12th CJK(China-Japan-South Korea) open source software outstanding technology award
Enterprises that use RocketMQ
Those use RocketMQ:
See also
References
- ^ "apache/rocketmq". GitHub. Retrieved 2018-05-25.
- ^ "Motivation". Apache RocketMQ. 2018-03-05. Retrieved 2018-06-14.
- ^ "RocketMQ Architecture". Apache RocketMQ. 2018-03-05. Retrieved 2018-05-25.
- ^ "Apache RocketMQ背后的设计思路与最佳实践". 阿里中间件团队博客 (in Simplified Chinese). Retrieved 2018-05-25.