今日公司在使用RocketMQ做的中间件,发现有消息订阅到:
在环境正常的情况下,影响消息订阅不上的原因有:
1.group
2.topic
3.tag
在同一个消费者里面这三个值必须各自唯一,不能两两相等,或者三个值一样
例如:
错误的代码:
public static void main(String[] args)
throws MQClientException {
DefaultMQProducer producer = new DefaultMQProducer("group");//group名称
producer.setNamesrvAddr("localhost:9876");
producer.start();
try {
Message message = new Message("topic2", "group", "message".getBytes());//这里的tag值配置和上面的组的配置一样
SendResult result = producer.send(message);
System.out.println("tag2 >>> :" + result);
}
catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}
正确的:
public static void main(String[] args)
throws MQClientException {
DefaultMQProducer producer = new DefaultMQProducer("group");//group名称
producer.setNamesrvAddr("localhost:9876");
producer.start();
try {
Message message = new Message("topic2", "tag2", "tag2".getBytes());//topic, tag名称
SendResult result = producer.send(message);
System.out.println("tag2 >>> :" + result);
}
catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}