1. 首页
  2. 编程语言
  3. Java
  4. rocketmq消费负载均衡--push消费详解

rocketmq消费负载均衡--push消费详解

上传者: 2022-02-06 00:20:35上传 PDF文件 135.24 KB 热度 14次

介绍之前首先抛出几个问题:1. 要做负载均衡,首先要解决的一个问题是什么?信号收集分为Client端信号收集与Broker端信号收集两个部分。在DefaultMQPushConsumerImpl.start()时,会将消费者的topic订阅关系设置到rebalanceImpl的SubscriptionInner的map中用于负载:FilterAPI.buildSubscriptionData接口将订阅关系转换为SubscriptionData 数据,其中subString包含订阅tag等信息。另外,如果该消费者的消费模式为集群消费,则会将retry的topic一并放到。Client继续收集信息:本文以DefaultMQPushConsumerImpl为例,因此this对象类型为DefaultMQPushConsumerImp。this.rebalanceService是一个RebalanceService实例对象,它继承与ServiceThread,是一个线程类。rebalanceImpl.doRebalance()过程如下:rebalanceByTopic方法中根据消费者的消费类型为BROADCASTING或CLUSTERING做不同的逻辑处理。集群消费负载均衡逻辑主要代码如下:注:BROADCASTING逻辑只包含上述的1、6。当前消费对进行负载均衡策略后获取对应的消息消费队列。

下载地址
用户评论