zookeeper与kafka之间具体的是一种什么关系呢?

無名 发表于: 2021-09-07   最后更新时间: 2021-09-07 11:23:51   3,524 游览

zookeeper与kafka之间具体的是一种什么关系呢?

kafka为什么需要zookeeper呢?

发表于 2021-09-07

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 扩容升级时涉及到主节点可能会变得麻烦,监控方案也是一个考验。

你的答案

查看kafka相关的其他问题或提一个您自己的问题