分布式消息服务ROCKETMQ版-实现订阅关系一致:实施方法

时间:2024-10-15 17:23:21

实施方法

  • 订阅一个Topic且订阅一个Tag
    同一消费组Group1中的消费者Consumer1、Consumer2和Consumer3都订阅了Topic_A,且都订阅了Topic_A的Tag_A,符合订阅关系一致原则。Consumer1、Consumer2、Consumer3的订阅关系一致,即Consumer1、Consumer2、Consumer3订阅消息的代码必须完全一致,代码示例如下:
    DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("Group1");
    consumer.subscribe("Topic_A", "Tag_A");
  • 订阅一个Topic且订阅多个Tag

    同一消费组Group1中的消费者Consumer1、Consumer2和Consumer3都订阅了Topic_A,且都订阅了Topic_A的Tag_A和Tag_B(即订阅Topic_A中所有Tag为Tag_A或Tag_B的消息),顺序都是Tag_A||Tag_B,符合订阅关系一致性原则。Consumer1、Consumer2、Consumer3的订阅关系一致,即Consumer1、Consumer2、Consumer3订阅消息的代码必须完全一致,代码示例如下:

    DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("Group1");
    consumer.subscribe("Topic_A", "Tag_A||Tag_B");
  • 订阅多个Topic且订阅多个Tag

    同一消费组Group1中的消费者Consumer1、Consumer2和Consumer3都订阅了Topic_A和Topic_B,且订阅Topic_A都未指定Tag(即订阅Topic_A中的所有消息),订阅Topic_B的Tag都是Tag_A和Tag_B(即订阅Topic_B中所有Tag为Tag_A或Tag_B的消息),顺序都是Tag_A||Tag_B,符合订阅关系一致性原则。Consumer1、Consumer2、Consumer3的订阅关系一致,即Consumer1、Consumer2、Consumer3订阅消息的代码必须完全一致,代码示例如下:

    DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("Group1");
    consumer.subscribe("Topic_A", "*");
    consumer.subscribe("Topic_B", "Tag_A||Tag_B");
support.huaweicloud.com/bestpractice-hrm/hrm-bp-004.html