如何实现顺序消息? 需要程序保证发送和消费的是同一个 Queue
rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是順序消费消息的;有時候,我们需要顺序消费一批消息,比如电商系统 订单创建、支付、完成操作,需要順序执行;
RocketMQTemplate给我们提供了SendOrderly方法(有多個重载),来实现发送顺序消息;包括以下:
syncSendOrderly,发送同步顺序消息;
asyncSendOrderly,发送异步顺序消息;
sendOneWayOrderly,发送单向顺序消息;
一般我们用syncSendOrderly方法发送同步顺序消息。
环境:springboot2.3.9RELEASE + RocketMQ4.8.0
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.r