欢迎光临
我们一直在努力

Kafka架构-ZooKeeper在Kafka中

kafka是一个非常依赖于zk的组件,Kafka集群中会有很多broker,比如分布式集群中有3个broker。

而在多个broker中会选取一个作为controller leader这样的角色。controller leader负责管理集群的上下线。所有topic分区的副本分配以及,包括leader的选举等等。这样的工作都是controller leader来实现的。

可以说controller的工作是依赖于zk。

集群中有3个broker,上面有broker0-3,这三个broker在启动之后都会向zk中注册节点,就是根下的controller这个节点。这个节点类型是临时节点类型,谁先注册上了,谁就是controller leader。

谁后注册的,发现这个节点已经被注册了,那么他们就会变为follower。

整个集群的管理工作是由leader来完成的。

broker1先注册节点,所以它当选为leader。

首先,所有的broker都会像zk ids下面注册序号节点,这个序号节点就是自己的broker id。每个broker启动之后都会去注册这样的临时节点。

Kafka的controller leader就会监听这样的节点,谁在就说明谁在线,如果在监听节点的过程中2没了,那说明2号的broker掉线了宕机了,所以它会监听到状态的变化。

2上可能有些分区,有些副本。有可能里面就有某个分区的副本的leader。那么就需要进行这个分区上的leader选举。这就是controller leader要干的事情。

如果leader挂了,broker1注册上了,在挂了之后0和2都是可以感知到的,因为都会监控controller这个节点的。当没有controller这个节点说明就挂了,于是他们再次去争抢这个节点,谁抢到谁就是新的leader。

说明broker3 为controller leader节点,如果3号挂掉之后,就会有新的controller leader出现,同时controller epoch会+1,这个代表controller leader发生了多少次变化。

赞(0)
未经允许不得转载:171主机测评 » Kafka架构-ZooKeeper在Kafka中
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址