简述Kafka副本的leader选举流程?
Kafka副本的leader选举流程如下:
- Kafka每启动一个节点就会在Zookeeper中注册一个节点信息,每一个broker节点都有对应的Controller,他们会争先抢占注册ZK中的controller,只有抢到ZK资源的那个controller才能决定选举。
- 选举出来的Controller会监听brokers节点的变化,决定leader的选举,将节点信息上传到Zookeeper,其他Controller就会从Zookeeper同步相关信息。
- 假设Broker1中leader挂了,Controller就会监听到节点变化,然后获取到ISR,选举新的leader(在ISR中存活为前提,按照AR中排在前面的优先),更新leader及ISR。