一、启动
DefaultMQPushConsumer.start方法
启动过程不用太过关注,有个概念就行,然后客户端启动的核心是 mQClientFactory 主要是启动了一大堆的服务。这些服务可以结合具体场景再进行深入。例如pullMessageService主要处理拉取消息服务,rebalanceService主要处理客户端的负载均衡。
二、消息拉取
拉模式:PullMessageService
PullRequest里有messageQueue和processQueue,其中messageQueue负责拉取消息,拉取到后将消息存入processQueue,进行处理。存入后就可以清空 messageQueue,继续拉取了。
三、客户端负载均衡策略
在消费者示例的start方法中,启动RebalanceService,这个是客户端进行负载均衡 策略的启动服务。他只负责根据负载均衡策略获取当前客户端分配到的 MessageQueue示例。五种负载策略,可以由Consumer的allocateMessageQueueStrategy属性来选 择。最常用的是AllocateMessageQueueAveragely平均分配和 AllocateMessageQueueAveragelyByCircle平均轮询分配。
平均分配是把MessageQueue按组内的消费者个数平均分配。而平均轮询分配就是把MessageQueue按组内的消费者一个一个