目录
- SpringBoot集成RocketMQ
- 消息发送三种方式
- 1、同步消息
- producer-springboot
- 创建项目
- 添加依赖
- 配置文件
- 同步消息发送代码
- 启动类
- Test类
- comsumer-springboot
- 创建项目
- 添加依赖
- 配置文件
- 同步消息消费代码
- 2、异步消息
- 生产者
- 消费者
- 3、一次性消息
- 生产者
- 消费者
- 消息消费两种方式
- 1、集群模式
- 生产者:
- 消费者:
- 2、广播模式
- 生产者
- 消费者
- 顺序消息
- 生产者
- 问题:
- 消费者:
- 延迟消息
- 生产者:
- 消费者:
- 消息过滤
- 1、Tag标签过滤
- 生产者:
- 消费者:
- 2、SQL92过滤
- 生产者:
- 消费者:
- 消费状态
SpringBoot集成RocketMQ
消息发送三种方式
1、同步消息
producer-springboot
创建项目
也是创建一个maven项目,添加对应的依赖就是boot项目了
添加依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.14.RELEASE</version><relativePath/></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
配置文件
application.properties
同步消息发送代码
启动类
Test类
因为没有用web来启动,所以我们来写个测试类就可以了
效果:已经成功发送消息到消息中间件
comsumer-springboot
创建项目
添加依赖
和生产者的依赖差不多
配置文件
只需要nameserver地址就可以,知道去哪里消费
同步消息消费代码
2、异步消息
生产者
消费者
消费者代码没变化,正常消费
3、一次性消息
生产者
就是调用方法而已,没有什么区别
消费者
都是同样的消费代码,不需要改变
消息消费两种方式
1、集群模式
开两个消费启动
生产者:
消费者:
集群模式的每个消费者,均衡分配消息进行消费
均衡分配
2、广播模式
每个消费者都能消费到同样的所有消息
生产者
消费者
顺序消息
加点基础数据
生产者
问题:
解答:
执行rocketMQTemplate.sendOneWayOrderly()这个发送消息的方法的时候,才会调用到这个rocketMQTemplate.setMessageQueueSelector()这个setxxx方法。
消费者:
注解上加个顺序消费的参数就可以了
多个结果都是按顺序消费的====创建–付款–完成–推送
延迟消息
生产者:
消费者:
如图:
第一次需要创建topic需要时间,所以假设延迟10秒,第一条消费的时间,因为要创建topic,所以会大于10秒,后面的其他消息就会稳定在10秒。
经自己测试,后面的其他延迟消息,会上下浮动1秒。
消息转string的其他方法,试下有没有用,没有用
消息过滤
1、Tag标签过滤
生产者:
消费者:
2、SQL92过滤
生产者: