集群订阅即某个消费者集群只消费指定的 Topic,而不是消费所有 Topic。
请确保同一个 Consumer ID 下所有 Consumer 实例的订阅关系保持一致,具体请参考订阅关系一致文档。
public class ConsumerTest {
public static void main(String[] args) {
Properties properties = new Properties();
properties.put(PropertyKeyConst.ConsumerId, "XXX");// 您在控制台创建的 Consumer ID
properties.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-internal
properties.put(PropertyKeyConst.ONSAddr,
"http://onsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal");//此处以公共云生产环境为例
Consumer consumer = ONSFactory.createConsumer(properties);
consumer.subscribe("TopicTestMQ", "TagA||TagB", new MessageListener() { //订阅多个Tag
public Action consume(Message message, ConsumeContext context) {
System.out.println("Receive: " + message);
return Action.CommitMessage;
}
});
//订阅另外一个Topic
consumer.subscribe("TopicTestMQ-Other", "*", new MessageListener() { //订阅全部Tag
public Action consume(Message message, ConsumeContext context) {
System.out.println("Receive: " + message);
return Action.CommitMessage;
}
});
consumer.start(); //订阅主题后才开启消费集群
System.out.println("Consumer Started");
}
}