javarocketmq订阅多个topic
时间: 2023-08-03 09:30:23 浏览: 54
要在Java RocketMQ中订阅多个topic,可以使用`DefaultMQPushConsumer`类的`subscribe`方法。
以下是一个示例代码片段,演示如何订阅多个topic:
```java
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer-group");
consumer.setNamesrvAddr("localhost:9876");
// 订阅多个topic
consumer.subscribe("topic1", "*");
consumer.subscribe("topic2", "*");
// 注册消息处理器
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
// 处理消息
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
// 启动消费者
consumer.start();
```
在上面的代码中,我们首先创建了一个`DefaultMQPushConsumer`实例,并设置了它的`namesrvAddr`属性。然后,我们使用`subscribe`方法分别订阅了两个topic。最后,我们注册了一个消息处理器,并启动了消费者。
注意,`subscribe`方法的第二个参数是一个通配符,用于指定要消费的消息标签(Tag)。在本例中,我们使用通配符`*`,表示消费所有标签的消息。如果要只消费特定标签的消息,可以将通配符替换为具体的标签名。