Jump to content

Apache RocketMQ

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by What-a-good-jungle (talk | contribs) at 02:38, 26 June 2018 (Created page with '{{Infobox software | title = Apache RocketMQ | name = Apache RocketMQ | logo = thumb|Rmq | developer = Apache Software Foundation | release...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Apache RocketMQ
Developer(s)Apache Software Foundation
Initial release2012; 13 years ago (2012)
Stable release
4.2.0 / April 27, 2018; 7 years ago (2018-04-27)
Repository
Written inJava
Operating systemCross-platform
TypeStream processing, Message broker
LicenseApache License 2.0
Websiterocketmq.apache.org

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

  1. ^ "apache/rocketmq". GitHub. Retrieved 2018-05-25.
  2. ^ "Motivation". Apache RocketMQ. 2018-03-05. Retrieved 2018-06-14.
  3. ^ "RocketMQ Architecture". Apache RocketMQ. 2018-03-05. Retrieved 2018-05-25.
  4. ^ "Apache RocketMQ背后的设计思路与最佳实践". 阿里中间件团队博客 (in Simplified Chinese). Retrieved 2018-05-25.