消费端选择消费队列的规则在RocketMQ-负载均衡中已经解释清楚,在broker主从部署结构上,物理消息会被同步到多个slave节点上,因此消费端如何从master节点和多个slave节点中选出一个broker节点进行消费需要一个策略。

         假设broker有一个master节点与两个slave节点,拉取步骤如下:

      (1)consumer第一次默认从master节点拉取消息

      (2)master将消息返回,并计算未消费的数据量占物理内存的比例,当超过40%时,会返回建议的拉取节点id(suggested brokerId),如果未超过,suggested brokerId仍然是master节点

      (3)consumer获取返回结果后,将建议的拉取节点保存在本地

      (4)consumer第二次拉取消息时,会从上次返回的建议节点中获取消息

        

RocketMQ-消费者broker节点选择策略
broker节点选择策略

相关文章: