1.节点注册
broker启动的时候,创建临时节点把自己的ID注册到Zookeeper的/brokers/ids
2.控制器选举
控制器其实就是一个broker,只不过它负责分区首领的选举
集群里第一个启动的broker创建临时节点/controller让自己成为控制器。
其他broker在启动时也会尝试创建这个节点,不过它们会收到一个“节点已存在”的异常,然后“意识”到控制器节点已存在,也就是说集群里已经有一个控制器了。其他broker在控制器节点上创建Zookeeper watch对象,这样它们就可以收到这个节点的变更通知。这种方式可以确保集群里一次只有一个控制器存在。
网友评论