目录
1 使用prettyZoo查看zk节点信息
从上图可以看出,kafka目录下面存储了众多kafka信息,其中brokers目录下ids目录下存放broker id:0,1,2(提前开了三个broker节点,如果开了四个broker节点,那么ids为:0,1,2,3)。
2 在zooke的服务端存储的kafka相关信息:
3 kafka Broker总体工作流程
3.1 注册流程
- broker启动后再zk中注册。
- 注册controller,其中先注册的controller(下文统称为主controller)在后续leader的选举过程中起决定性作用。
- 由选举出来的主controller(即先注册的)监听brokers节点的变化。
- 主controller决定leader选举。
选举规则:在isr中存活为前提,按照AR中排在前面的优先,例如ar[1,0,2],isr[1,0,2],那么leader就会按照1,0,2的顺序轮询。 - 主controller将broker节点信息上传到zk。
- 其他controller从zk同步相关信息。
3.2 如果leader挂了,重新选举过程:
此时若选举出的leader挂掉了,需要重新选举。重新选举过程如下:
- 主controller监听节点变化。
- 获取当前的isr列表。
- 根据isr列表和ar列表重新选举leader节点。(选举规则同上)。
- 更新zk中的相关节点信息及isr。