您是否需要多个 Zookeeper 实例来运行多代理 kafka?

neg*_*ter 4 distributed-system apache-kafka apache-zookeeper

我是卡夫卡新手。

Kafka 应该被用作分布式服务。但我在网上找到的教程和博客文章从未提及是否有一个或多个zookeeper节点。

本教程仅弹出一个 Zookeper 实例,然后弹出多个 kafka 代理。

这是应该怎样做的吗?

Kar*_*uru 5

Zookeeper是分布式系统的协调服务(以集中方式),由集群用来维护分布式系统。它通过配置信息、命名等元数据实现分布式同步。

在一般架构中,Kafka集群应由3个ZooKeeper节点提供服务,但如果部署规模很大,则可以增加到5个ZooKeeper节点,但这反过来会增加节点上的负载,因为所有节点都试图加入同步,因为所有元数据相关活动均由 ZooKeeper 处理。

另外,值得注意的是,作为一项改进,新版本的 Kafka 减少了对 ZooKeeper 的依赖,以增强元数据的可扩展性,降低外部组件维护元数据的复杂性,并增强意外停机的恢复能力。采用新方法,控制器故障转移几乎是瞬时的。这是通过称为“KRaft”的 Kafka Raft 元数据模式实现的,该模式将在没有 ZooKeeper 的情况下运行 Kafka,方法是将 ZooKeeper 处理的所有职责合并到 Kafka 集群本身的服务内,并根据 KRaft 协议中使用的基于事件的机制进行操作。