OpenMessaging overview



This article focuses on OpenMessaging.

Architecture diagram

  • Namespace, similar to cgroup’s namespace, is used for security isolation. Each namespace has its own producer, consumer, topic, queue, etc.
  • Producer, there are two types of message producers, one is Producer, and the other is BatchMessageSender. The former provides multiple sending methods to send messages to the queue, while the latter focuses on speed and sends one submission in batch.
  • Consumer, there are three types of message consumers, one is PullConsumer, one is PushConsumer, and the other is StreamingConsumer. PullConsumer can only pull messages from a fixed queue. PushConsumer can receive messages from multiple queues an d receive them through MessageListener. StreamingConsumer is mainly used for streaming processing.
  • Queue for receiving messages from producer or routing
  • Routing, responsible for processing native messages and then routing to other queues


OpenMessaging is a distributed message model standard initiated by Ali. Its api specification was first implemented in rocketmq. Through this standard, the high complexity and incompatibility of various message middleware can be simplified, and the usability of message middleware services can be improved.