rocketmq源码解析请求处理通知消费者订阅信息发生了改变②

本文解析了RocketMQ中消费者如何处理订阅信息变化,通过RebalanceImpl#doRebalance方法实现负载均衡,针对每个主题进行消息队列的重新分配。

说在前面

请求处理 通知消费者订阅信息发生了改变

 

源码解析

进入这个方法,org.apache.rocketmq.client.impl.consumer.RebalanceImpl#doRebalance

public void doRebalance(final boolean isOrder) {//        获取topic的订阅信息=》        Map<String, SubscriptionData> subTable = this.getSubscriptionInner();        if (subTable != null) {            for (final Map.Entry<String, SubscriptionData> entry : subTable.entrySet()) {                final String topic = entry.getKey();                try {//                    根据topic进行负载均衡处理=》                    this.rebalanceByTopic(topic, isOrder);                } catch (Throwable e) {                    if (!topic.startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX)) {                        log.warn("rebalanceByTopic Exception", e);                    }                }            }        }
//        根据topic删除消息队列=》        this.truncateMessageQueueNotMyTopic();    }

上面介绍过了。

往上返回到这个方法,org.apache.rocketmq.client.impl.ClientRemotingProcessor#notifyConsumerIdsChanged结束。

 

说在最后

本次解析仅代表个人观点,仅供参考。

 

加入技术微信群

钉钉技术群

转载于:https://my.oschina.net/u/3775437/blog/3095511

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值