前言
本文中消费流程是基于集群模式下push并发消费的场景进行剖析的。
使用姿势
下面是一个简单的消费者代码:
// 创建消费者实例,并指定消费者组
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_4");
// 设置NameServer地址的一种方式,另一种方式是在环境变量中设置
consumer.setNamesrvAddr("name-server1-ip:9876;name-server2-ip:9876");
// 设置从哪里开始消费,CONSUME_FROM_FIRST_OFFSET的策略是从队列头部开始
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
// 订阅topic,*表示消费所有该topic的消息
consumer.subscribe("TopicTest", "*");
// 注册业务消费逻辑
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
ConsumeConcurrentlyContext context) {
System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
return ConsumeC