MQ集群方式订阅消息

来源:互联网 发布:ping优化 编辑:程序博客网 时间:2024/05/29 11:02

集群订阅即某个消费者集群只消费指定的 Topic,而不是消费所有 Topic。

请确保同一个 Consumer ID 下所有 Consumer 实例的订阅关系保持一致,具体请参考订阅关系一致文档。

  1. public class ConsumerTest {
  2. public static void main(String[] args) {
  3. Properties properties = new Properties();
  4. properties.put(PropertyKeyConst.ConsumerId, "XXX");// 您在控制台创建的 Consumer ID
  5. properties.put(PropertyKeyConst.AccessKey, "XXX");// AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建
  6. properties.put(PropertyKeyConst.SecretKey, "XXX");// SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建
  7. //PropertyKeyConst.ONSAddr地址请根据实际情况对应以下几类进行输入:
  8. //公共云生产环境:http://onsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal
  9. //公共云公测环境:http://onsaddr-internet.aliyun.com/rocketmq/nsaddr4client-internet
  10. //杭州金融云环境:http://jbponsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal
  11. //杭州深圳云环境:http://mq4finance-sz.addr.aliyun.com:8080/rocketmq/nsaddr4client-internal
  12. //亚太东南1公共云环境(只适用于新加坡ECS):http://ap-southeastaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal
  13. properties.put(PropertyKeyConst.ONSAddr,
  14. "http://onsaddr-internal.aliyun.com:8080/rocketmq/nsaddr4client-internal");//此处以公共云生产环境为例
  15. Consumer consumer = ONSFactory.createConsumer(properties);
  16. consumer.subscribe("TopicTestMQ", "TagA||TagB", new MessageListener() { //订阅多个Tag
  17. public Action consume(Message message, ConsumeContext context) {
  18. System.out.println("Receive: " + message);
  19. return Action.CommitMessage;
  20. }
  21. });
  22. //订阅另外一个Topic
  23. consumer.subscribe("TopicTestMQ-Other", "*", new MessageListener() { //订阅全部Tag
  24. public Action consume(Message message, ConsumeContext context) {
  25. System.out.println("Receive: " + message);
  26. return Action.CommitMessage;
  27. }
  28. });
  29. consumer.start(); //订阅主题后才开启消费集群
  30. System.out.println("Consumer Started");
  31. }
  32. }
0 0
原创粉丝点击