History
The development of RocketMQ can be divided into three stages. The first generation uses the push mode in data transportation, and relational database in data storage. It shows low latency in message delivery and meets the command of a typical E-commerce platform with distributed transactions. The second generation uses the pull mode in data transportation, and file system in data storage. It paid more attention to stability and reliability, and shows a comparable performance to the first generation in response time and Kafka on log collection. The third generation combines the Pull mode with some Push operations. It inherits the advantages of the first and second generation, and shows high performance in concurrency and massive amounts of data scenarios.Features
Much comparison have been made between the various messaging solutions, and it is widely known that when the number of topics increases dramatically, the throughput of RocketMQ dropped much less than Kafka. Because the characteristics of high performance, high reliability and high real-time ability, more and more efforts have been made to the combination of RocketMQ and other protocol components in every type of messaging scenarios such as MQTT.Architecture
NameServer Cluster
The lightweight component for service discovery and they can be used to read and write routing information. Each one records global information, and supports fast storage expansion.Broker Cluster
They use lightweight TOPIC and QUEUE mechanisms to manage data storage. To realize fault tolerance, two copies or three copies of data are provided. And Client can get message in Push and Pull model. In addition, disaster recovery and rich metrics statistics are also supported.Producer Cluster
Producers can be distributed deployed, and messages from producers to brokers can be balanced through multi-path. In addition, fast failure and low latency are supported.Consumer Cluster
Consumers can also be distributed deployed in the push and pull model, and they can subscribe message real-time, consume message in the unit of cluster. Message broadcasting is also supported.Applications
There are at least five aspects Apache RocketMQ could relate to: * 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; * Stream data access.Community Maintenance
The RocketMQ team have done much to active the community. Meetups, Workshops, ApacheCon and Code Marathon are regular held in BeiJing, ShenZhen, HangZhou to attract new contributors and committers. The OpenMessaging benchmarking suites are currently available for the RocketMQ and it makes RocketMQ keep the pace with the global standard for distributed messaging. As for version management, a series of standardized software development processes are adopted. The latest version is 4.2.0, and 4.3.0 is on the way. More information can be reached iAwards
2016 China's most popular open source software awardSee also
References
External links