详解RocketMQ中的consumer

RocketMQ的Consumer创建启动流程

(1) Push和Pull这两种方式,本质都是Pull实现的,所以DefaultMQPullConsumerImpl的start方法启动
(2) 配置通知方式:广播/集群
(3) 配置消息队列分配策略:默认都是平均,此外还有循环平均、配置分配等。
(4) 根据Topic创建这个消费者对应的SubscriptionData,包括:TAG。
(5) DefaultMQPullConsumerImpl里面的rebalanceImpl将会把topic和SubscriptionData作为键值对存放在里面。
(6) RebalaceImpl会有消费组名,消费模式等参数
(7) start 方法启动生产者,建立连接,注册,解析路由消息,心跳等
 

Consumer的类结构

详解RocketMQ中的consumer_第1张图片

 

1.MQAdmin:底层类,上篇博客已经提过,就不再此重提

2.MQConsumer:Consumer公共的接口,常用的方法如下

如果消费失败的话,消息将会返回到broker中,并且延迟一会消费的时间

void sendMessageBack(final MessageExt msg, final int delayLevel, final String brokerName)  throws RemotingException, MQBrokerException, InterruptedException,

你可能感兴趣的:(VIP,优化缓存技术,分布式技术,java,rocketmq,java-rocketmq)