说在前面
请求处理 通知消费者订阅信息发生了改变,更多源码解析请关注“天河聊架构”微信公众号
源码解析
进入这个方法,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结束。
说在最后
本次解析仅代表个人观点,仅供参考。
加入技术微信群
钉钉技术群