Zookeeper-Kafka 和一致性哈希
Zookeeper-Kafka and Consistent hashing
我正在学习 Zookeeper,我被困在中间,有些困惑。我浏览了各种论坛和问题,none 消除了我的困惑,最后来到 SO 以澄清以下事情。
据我了解,Zookeeper 在主从架构中工作。那么 Kafka 如何适应这种架构呢? Kafka 集群中的每个 Kafka 代理是否充当 Zookeeper 服务器整体的客户端,或者生成和使用消息的用户应用程序充当 Zookeeper 整体的客户端?
对于特定的 topic/partition 一个 Kafka 代理将参与其中,如果它收到大量消息(它无法处理),是否可以使用一致的散列和Zookeeper 架构如何支持这一点?
更新:
Zookeeper 是否类似于 DynamoDB 中用于成员资格和故障检测的 Gossip 协议的变体
我建议阅读 Zookeeper documentation (specially the Overview section) 以阐明其主要概念及其工作原理。
Kafka 代理充当 Zookeeper 客户端。他们连接到 Zookeeper 以读取和写入有关 Kafka 集群状态的数据。
您可能会对 Zookeeper 是一个 leader/follower 系统感到困惑。在 Zookeeper 整体中,其中一个 Zookeeper 服务器充当领导者并有效地处理请求。追随者将请求转发给领导者。
Kafka 消息未写入 Zookeeper。 Zookeeper 仅存储 topic/partitions 元数据(主题配置、副本和 ISR 列表)。 Kafka 代理将消息存储在它们的磁盘上。 Kafka 生产者在发送消息时决定分区(因此是代理)。默认分区程序可以使用 round-robin 在代理之间传播消息。
Zookeeper 使用自己的共识算法 (Zab)。您可以在 Zookeeper Wiki.
中找到它的描述
我正在学习 Zookeeper,我被困在中间,有些困惑。我浏览了各种论坛和问题,none 消除了我的困惑,最后来到 SO 以澄清以下事情。
据我了解,Zookeeper 在主从架构中工作。那么 Kafka 如何适应这种架构呢? Kafka 集群中的每个 Kafka 代理是否充当 Zookeeper 服务器整体的客户端,或者生成和使用消息的用户应用程序充当 Zookeeper 整体的客户端?
对于特定的 topic/partition 一个 Kafka 代理将参与其中,如果它收到大量消息(它无法处理),是否可以使用一致的散列和Zookeeper 架构如何支持这一点?
更新: Zookeeper 是否类似于 DynamoDB 中用于成员资格和故障检测的 Gossip 协议的变体
我建议阅读 Zookeeper documentation (specially the Overview section) 以阐明其主要概念及其工作原理。
Kafka 代理充当 Zookeeper 客户端。他们连接到 Zookeeper 以读取和写入有关 Kafka 集群状态的数据。
您可能会对 Zookeeper 是一个 leader/follower 系统感到困惑。在 Zookeeper 整体中,其中一个 Zookeeper 服务器充当领导者并有效地处理请求。追随者将请求转发给领导者。
Kafka 消息未写入 Zookeeper。 Zookeeper 仅存储 topic/partitions 元数据(主题配置、副本和 ISR 列表)。 Kafka 代理将消息存储在它们的磁盘上。 Kafka 生产者在发送消息时决定分区(因此是代理)。默认分区程序可以使用 round-robin 在代理之间传播消息。
Zookeeper 使用自己的共识算法 (Zab)。您可以在 Zookeeper Wiki.
中找到它的描述