赞
踩
Kafka集群中有一个broker的Controller会被选举为Controller Leader,负责管理集群broker的上下线,所有topic的分区副本分配和Leader选举等工作。Controller的信息同步工作时依赖于Zookeeper的。
broker启动后在zk中注册
Controller:决定leader选举。每个broker中都有一个Controller模块,他们都会去抢占注册ZK中的controller,只有抢到ZK资源的那个controller才能决定选举。
选举出来的controller监听brokers节点的变化
controller决定选举。选举规则:在isr中存活为前提,按照AR中排在前面优先。例如:ar[1,0,2],isr[1,0,2],那么leader就会按照1,0,2的顺序轮询。
Controller将节点信息上传到ZK备份
其他controller从zk同步相关信息。
假设broker1中leader挂了,Controller监测到节点变化,向zk请求isr,选举新的leader(isr存活,ar排在前面的优先),然后controller更新zk中存储的leader和isr信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。