12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息
Posted java1234_小锋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息相关的知识,希望对你有一定的参考价值。
消息发送端只能设置一个tag,消息接收端可以设置多个tag。
接收消息端通过 ‘||’ 设置多个tag,如下:tag1 || tag2 || tag3 || …
上实例,生产端发送三个消息,TAG分别是TAG1,TAG2,TAG3
/**
* 发送带Tag消息,测试根据Tag过滤消息
*/
public void sendMessageWithTag(){
// 构造消息1
Message msg1 = MessageBuilder.withPayload("rocketmq过滤消息测试-TAG01").build();
// 构造消息2
Message msg2 = MessageBuilder.withPayload("rocketmq过滤消息测试-TAG02").build();
// 构造消息3
Message msg3 = MessageBuilder.withPayload("rocketmq过滤消息测试-TAG03").build();
rocketMQTemplate.convertAndSend("java1234-filter-rocketmq" + ":" + "TAG1", msg1);
rocketMQTemplate.convertAndSend("java1234-filter-rocketmq" + ":" + "TAG2", msg2);
rocketMQTemplate.convertAndSend("java1234-filter-rocketmq" + ":" + "TAG3", msg3);
}
消费端,通过selectorExpression = “TAG1 || TAG2”,selectorType = SelectorType.TAG,指定需要消费的TAG
@RocketMQMessageListener(topic = "java1234-filter-rocketmq",consumerGroup ="${rocketmq.consumer.group}" ,selectorExpression = "TAG1 || TAG2",selectorType = SelectorType.TAG)
@Component
public class ConsumerService implements RocketMQListener<String> {
@Override
public void onMessage(String s) {
System.out.println("消费者:收到消息内容:"+s);
}
}
运行测试:
发现只消费了TAG1和TAG2的消息,TAG3消息没有被消费;
说明:这个是锋哥的RocketMQ备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖
没问题!
微信搜一搜公众号【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。
以上是关于12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot(17)---SpringBoot整合RocketMQ