zookeeper与kafka之间具体的是一种什么关系呢?
kafka为什么需要zookeeper呢?
ZooKeeper,翻译过来是动物园管理员。
动物园管理员
单个kafka是不知道其他kafka节点的存在的,所以,每个kafka向zk注册,说我是A节点(broker.id),另外一个kafka,也想zk注册,我是B节点。
这样,通过zk,组成了一个kafka集群。每个kafka就可以通过zk来发现彼此。
kafka团队计划在2.8.0版本之后,彻底取代掉zookeeper。详情可参考:在Kafka中,ZooKeeper的作用是什么?
zk是一个分布式文件系统,采用了类raft协议进行选举。很多多主式的分布式程序采用抢占zk节点的方式进行选举,这样就不必自己做raft这一部分了。有的程序也会在zk上注册节点存放一些元数据。kafka 之前也是采用zk存放元数据,节点发现和进行选举等,这样各个节点间可以一定程度解耦。随着版本的更新,kafka逐渐将元数据放在broker中,以达到轻依赖的目的。2.8版本开放了kraft的试用模式,实现了类似es的raft选举方式,后续版本会逐步脱离zk的束缚。但是这也会带来新的问题,后期kafka 扩容升级时涉及到主节点可能会变得麻烦,监控方案也是一个考验。
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
zookeeper与kafka之间具体的是一种什么关系呢?
ZooKeeper,翻译过来是
动物园管理员
。单个kafka是不知道其他kafka节点的存在的,所以,每个kafka向zk注册,说我是A节点(broker.id),另外一个kafka,也想zk注册,我是B节点。
这样,通过zk,组成了一个kafka集群。每个kafka就可以通过zk来发现彼此。
kafka为什么需要zookeeper呢?
kafka团队计划在2.8.0版本之后,彻底取代掉zookeeper。
详情可参考:在Kafka中,ZooKeeper的作用是什么?
zk是一个分布式文件系统,采用了类raft协议进行选举。很多多主式的分布式程序采用抢占zk节点的方式进行选举,这样就不必自己做raft这一部分了。有的程序也会在zk上注册节点存放一些元数据。
kafka 之前也是采用zk存放元数据,节点发现和进行选举等,这样各个节点间可以一定程度解耦。随着版本的更新,kafka逐渐将元数据放在broker中,以达到轻依赖的目的。2.8版本开放了kraft的试用模式,实现了类似es的raft选举方式,后续版本会逐步脱离zk的束缚。
但是这也会带来新的问题,后期kafka 扩容升级时涉及到主节点可能会变得麻烦,监控方案也是一个考验。
你的答案