【发布时间】:2017-11-25 22:32:12
【问题描述】:
如果我有集群托管 1 个具有三个分区的主题。所以 ZooKeeper(ZK) 集群托管了 3 个代理实例。
根据我的理解,
- 生产者将与 ZooKeeper 交互以在代理上发布消息。
- ZK 将在内部根据每个代理实例的负载决定它需要哪个分区来发布消息。 Broker 也会与 ZK 交互 维护每个消费者实例的偏移量
- 同样,Consumer 将与 ZooKeeper 交互以使用来自代理的消息。 ZK 将根据负载从正确的代理中获取消息。
但我在阅读下面Workflow of Queue Messaging / Consumer Group部分的粗体文字后感到困惑
在kafka tutorial。我上面的理解错了吗?基于下面看起来像生产者/消费者不直接与动物园管理员交互。是不是反过来
ZK 与生产者/消费者交互的地方。如果是,谁(Zookeeper 或代理)需要发布或使用哪个代理实例消息?
ZooKeeper 服务主要用于通知生产者和消费者 Kafka 系统中存在任何新代理或 Kafka 系统中的代理。根据收到的通知 Zookeeper 关于经纪人和生产者的存在或失败 消费者做出决定并开始协调他们的任务 其他经纪人。基本上 Apache Zookeeper 是一个分布式的 配置和同步服务
【问题讨论】:
标签: java apache-kafka apache-zookeeper