https://www.cnblogs.com/hzmark/p/orderly_message.html
Producer端確保消息順序唯一要做的事情就是將消息路由到特定的分區,在RocketMQ中,通過MessageQueueSelector來實現分區的選擇。
Consumer端
RocketMQ消費端有兩種類型:MQPullConsumer和MQPushConsumer。
MQPullConsumer由用戶控制線程,主動從服務端獲取消息,每次獲取到的是一個MessageQueue中的消息。PullResult中的List msgFoundList自然和存儲順序一致,用戶需要再拿到這批消息后自己保證消費的順序。
對於PushConsumer,由用戶注冊MessageListener來消費消息,在客戶端中需要保證調用MessageListener時消息的順序性。RocketMQ中的實現如下: