Consumer负载均衡
消息拉取线程在从服务器拉取到一批消息后 然后提交到消息消费线程池后 又马不停蹄的继续向服务器再次尝试拉取消息
一个消费者可以同时消费一个topic下的不同队列
1、 在Consumer启动后 它就会通过定时任务不断地向RocketMQ集群中的 所有Broker实例发送心跳包 (包含:消息消费分组名称、订阅关系集合、消息通信模式和客户端id的值等信息) 2、 Broker端在收到Consumer的心跳消息后 会将它维护在ConsumerManager的本地缓存变量—consumerTable 同时并将封装后的客户端网络通道信息保存在本地缓存变量—channelInfoTable中 为之后做Consumer端的负载均衡提供可以依据的元数据信息
- Consumer端实现负载均衡的核心类—RebalanceImpl
在消费者启动的时候完成负载均衡逻辑
集群模式处理流程