rocketmq不同服务使用相同消费者组和生产者组的问题

之前多个服务使用同一个消费者组和生产者组procfg-consumer-group和procfg-produce-group,然后共享同一个Topic。
时不时会有问题,例如主控服务版本更新之后虽然消息发出来了,但是终端接收不到,消息有时会有CONSUMED_BUT_FILTERED(被过滤)

个人理解的原因是多个服务用同一个消费者组和生产者组时,A服务消费者接收A的Tag消息,B服务消费者接受B的Tag消息,如果A发消息,可能被B收到,因为是同一个消费者组,所以被过滤掉了
用了不同的消费者组和生产者组就不会有这个问题了

生产者组A (ProducerGroup_ServiceA)  
       │  
       ▼  
Topic: MyTopic  ──┬── Queue1: [Msg1(Tag=ServiceA), Msg3(Tag=ServiceB)]  
                  ├── Queue2: [Msg2(Tag=ServiceA), Msg4(Tag=ServiceB)]  
                  └── Queue3: [Msg5(Tag=ServiceA), Msg6(Tag=ServiceB)]  

消费者组A (ConsumerGroup_ServiceA)      消费者组B (ConsumerGroup_ServiceB)  
       │                                      │  
       ▼                                      ▼  
    [Msg1, Msg2, Msg5] (Tag=ServiceA)      [Msg3, Msg4, Msg6] (Tag=ServiceB)

结论:多个服务可以使用不同消费者组和生产者组,共用一个topic,用不同的tag区分服务

posted @ 2025-03-01 16:23  狗狗没有坏心眼  阅读(131)  评论(0)    收藏  举报