介绍
controller有哪些作用?
- 集群管理,管理集群中的各个broker,包括broker的上下线,broker的状态变化,partition的副本分配和迁移,
- leader选举,kafka controller参与leader选举,当某个partition的leader出现故障时,controller会协调其他副本参与leader选举,选举一个新的leader来继续服务,保证了集群的高可用
- topic管理,管理topic的创建,修改和删除操作,同时也负责对topic的分区数和副本数等参数进行调节
controller是如何选举出来的?
在Kafka集群启动的时候,会自动选举一台broker出来承担controller的责任。在启动的过程中没台broker都会尝试在zk上创建一个/controller临时节点,zk会保证只有一个broker可以创建成功,创建成功的broker就是controller。
一旦controller对应的broker宕机了,此时临时节点消息,集群中的其他节点会一直监听这个临时节点,发现临时节点消失,就争抢再次创建临时节点,保证有一台新的broker成为controller
参考博客
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net