RocketMQ的Consumer创建启动流程
(1) Push和Pull这两种方式,本质都是Pull实现的,所以DefaultMQPullConsumerImpl的start方法启动
(2) 配置通知方式:广播/集群
(3) 配置消息队列分配策略:默认都是平均,此外还有循环平均、配置分配等。
(4) 根据Topic创建这个消费者对应的SubscriptionData,包括:TAG。
(5) DefaultMQPullConsumerImpl里面的rebalanceImpl将会把topic和SubscriptionData作为键值对存放在里面。
(6) RebalaceImpl会有消费组名,消费模式等参数
(7) start 方法启动生产者,建立连接,注册,解析路由消息,心跳等
Consumer的类结构
1.MQAdmin:底层类,上篇博客已经提过,就不再此重提
2.MQConsumer:Consumer公共的接口,常用的方法如下
如果消费失败的话,消息将会返回到broker中,并且延迟一会消费的时间
void sendMessageBack(final MessageExt msg, final int delayLevel, final String brokerName) throws RemotingException, MQBrokerException, InterruptedException,