有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而RocketMQ是可以支持消息的顺序消费的。
RocketMQ在发送消息的时候,是将消息发送到不同的队列中,然后消费端从多个队列中读取消息进行消费,很明显,在这种全局模式下,是无法实现顺序消费的。
为了实现顺序消费,我们需要把有顺序的消息按照他的顺序,将他们发送到同一个队列中,这样消费端在消费的时候,就保证了其顺序。
但是顺序消费的性能肯定也相对差一些,因为只能使用一个队列。
一、在pom.xml中添加依赖:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
二、在application.yml中配置RocketMQ地址:
server:
port: 8888
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: ${spring.application.name}
sendMessageTimeout: 300000
备注:官方下载RocketMQ,本地启动RocketMQ。
三、 一个简单的生产消费案例:
生产者:向 stringTopic 的主题中发送一个 Hello RecketMQ 的字符串。
@RestController
@RequestMapping("/mq")
public class ProducerController {