集群订阅即某个消费者集群只消费指定的 Topic,而不是消费所有 Topic。
请确保同一个 Consumer ID 下所有 Consumer 实例的订阅关系保持一致,具体请参考订阅关系一致文档。
public class ConsumerTest {public static void main(String[] args) {Properties properties = new Properties();properties.put(PropertyKeyConst.ConsumerId, "XXX");// 您在控制台创建的 Consumer IDproperties.put(PropertyKeyConst.AccessKey, "XXX");// AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建properties.put(PropertyKeyConst.SecretKey, "XXX");// SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建//PropertyKeyConst.ONSAddr地址请根据实际情况对应以下几类进行输入://公共云生产环境:http://onsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal//公共云公测环境:http://onsaddr-internet.aliyun.com/rocketmq/nsaddr4client-internet//杭州金融云环境:http://jbponsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal//杭州深圳云环境:http://mq4finance-sz.addr.aliyun.com:8080/rocketmq/nsaddr4client-internal//亚太东南1公共云环境(只适用于新加坡ECS):http://ap-southeastaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internalproperties.put(PropertyKeyConst.ONSAddr,"http://onsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal");//此处以公共云生产环境为例Consumer consumer = ONSFactory.createConsumer(properties);consumer.subscribe("TopicTestMQ", "TagA||TagB", new MessageListener() { //订阅多个Tagpublic Action consume(Message message, ConsumeContext context) {System.out.println("Receive: " + message);return Action.CommitMessage;}});//订阅另外一个Topicconsumer.subscribe("TopicTestMQ-Other", "*", new MessageListener() { //订阅全部Tagpublic Action consume(Message message, ConsumeContext context) {System.out.println("Receive: " + message);return Action.CommitMessage;}});consumer.start(); //订阅主题后才开启消费集群System.out.println("Consumer Started");}}
本文介绍了MQ集群订阅消息的方式,重点在于消费者集群如何只订阅特定Topic,并强调了同一Consumer ID下所有实例订阅关系的一致性要求。

被折叠的 条评论
为什么被折叠?



