rokcetmq 可以几个系统监听同一个topic都消费吗,具体怎么实现
时间: 2023-05-27 21:03:19 浏览: 56
可以,rocketmq可以支持多个系统对同一个topic进行消费。
具体实现方式为,在rocketmq中,可以通过创建不同的消费者组,让多个系统来订阅相同的topic,并将消息分发到相应的消费者组中。这样,不同的系统就可以独立消费相同的消息。
在代码实现上,只需要创建多个消费者,指定相同的topic和消费者组即可。示例代码如下:
```
DefaultMQPushConsumer consumer1 = new DefaultMQPushConsumer("Group1");
consumer1.setNamesrvAddr("localhost:9876");
consumer1.subscribe("Topic", "*");
consumer1.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
// 对消息的消费逻辑
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer1.start();
DefaultMQPushConsumer consumer2 = new DefaultMQPushConsumer("Group2");
consumer2.setNamesrvAddr("localhost:9876");
consumer2.subscribe("Topic", "*");
consumer2.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
// 对消息的消费逻辑
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer2.start();
```
以上代码创建了两个消费者,分别订阅了相同的topic,并指定了不同的消费者组。这样,两个消费者就可以独立消费相同的消息了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)