rocketmq一个topic对用多个tag时tag的定义方式

在使用rocketmq时,发现消费者只能受到部分消息(消费者tag里定义的tag),查看监控器总是显示消息被过滤,解决方式(注意private String tag = "tag1";)

private String consumerGroup = "consumerTopic";

    private String namesrvAddr = "127.0.0.1:9876";

    private String topic = "supplyTopic";

    private String tag = "tag1";


    private DefaultMQPushConsumer consumer;

    @Resource
    private MessageListenerConcurrently messageListenerConcurrentlyImpl;

    public void init() {
        this.consumer = new DefaultMQPushConsumer(consumerGroup);
        consumer.setNamesrvAddr(namesrvAddr);

        try {
            //订阅testTopic下的所有tag
            consumer.subscribe(topic, tag);
            consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET);

            consumer.registerMessageListener(messageListenerConcurrentlyImpl);

            consumer.start();
            log.info("RocketMQ consumer启动成功");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("RocketMQ consumer 启动异常!", e);
        }
    }

将private String tag = "tag1";修改为String tag = "*";这样就能接收到所有的信息了。(在同一个类中(也就是一个消费者中),同一个topic对应不同的tag,应该使用 “ || ”进行分割,使用""或“*”订阅所有tag。)

topicTags = ("${haha.mq.topic:TEST_HAHA}:${haha.mq.topic:TEST_TAG01}||" +
"${haha.mq.topic:TEST_TAG02}")
)

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值