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);
    }

}

运行测试:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t9l2kyEw-1631416614276)(C:\Users\java1234\Desktop\RocketMQ\课件\RocketMQ分布式消息队列课件.assets\image-20210831223558642.png)]

发现只消费了TAG1和TAG2的消息,TAG3消息没有被消费;

说明:这个是锋哥的RocketMQ备课笔记,等备课完,会发布配套的视频教程,如有需要,可以先加锋哥WX:java1239 欢迎白嫖
没问题!

微信搜一搜公众号【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值