RocketMQ是一个高性能、高可靠性的分布式消息中间件系统,其消息处理模型分为生产者向消息队列发送消息和消费者从消息队列消费消息两个部分,本文将重点介绍其中的消息消费过程。
一、消费者订阅消息
RocketMQ提供了两种消息消费模式,一种是推模式(Pull),也就是消费者主动从消息队列拉取消息,另一种是拉模式(Push),即消息队列向消费者推送消息。本文以推模式为例进行源码分析。
在RocketMQ中,消费者需要先订阅消息,即告诉消息队列要消费哪些主题(Topic)下的消息。消费者可以通过调用Consumer对象的subscribe()方法来完成订阅操作,如下所示:
public class DemoConsumer {
public static void main(String[] args) throws MQClientException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("demo_consumer_group");
consumer.setNamesrvAddr("localhost:9876");
// 订阅消息
consumer.subscribe("demo_topic", "*");
&nb