如何保证消息消费顺序呢?
生活随笔
收集整理的這篇文章主要介紹了
如何保证消息消费顺序呢?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
通過分區規則可以實現同類消息在rocketmq上的順序存儲。但是對于消費端來說,如何保證消費的順序??
我們前面寫的消息消費代碼使用的是MessageListenerConcurrently并發監聽,也就是基于多個線程并行來消費消息。這個無法保證消息消費的順序。RocketMQ中提供了MessageListenerOrderly 一個類來實現順序消費,?
consumer.subscribe("store_topic_test","*");?consumer.registerMessageListener((MessageListenerOrderly) (list,? consumeOrderlyContext) -> {? list.stream().forEach(messageExt -> System.out.println(new? String(messageExt.getBody())));? return ConsumeOrderlyStatus.SUCCESS;? });順序消費會帶來一些問題,?
1. 遇到消息失敗的消息,無法跳過,當前隊列消費暫停
2. 降低了消息處理的性能
?
總結
以上是生活随笔為你收集整理的如何保证消息消费顺序呢?的全部內容,希望文章能夠幫你解決所遇到的問題。