5

Kafka 生产者需要一个 kafka 代理的引导列表才能工作。根据这个解释,它需要它才能连接到其中一个代理,然后获取有关集群中所有实时代理的元数据。

现在,所有代理都已在 Zookeeper 中注册,Kafka 消费者连接到 ZK,ZK 处理来自哪个代理,哪个分区是要读取的数据。当 ZK 已经拥有所有信息时,为什么 Producers 也不能连接到 ZK?

我看到有一些关于此的 SO 问题,但它们似乎解释了为什么消费者需要 ZK 而不是为什么 Producer 需要引导代理列表而不是 ZK?

4

1 回答 1

8

生产者和消费者过去都曾连接到 Zookeeper 进行协调,但现在已经不再这样做了。有了 Kafka 0.9 中的新消费者 API,客户端都不再需要了解 Zookeeper,这似乎是 Kafka 客户端的未来。除了摆脱对 ZK 的依赖和脆弱的连接库之外,它还使客户端协议的演变更容易,因为这现在完全由 Kafka 管理。

目前这两个消费者客户端都在 Kafka 0.9 中可用,但您应该做好准备,使用 ZK 连接的消费者客户端可能会在未来版本中的某个时候被弃用。

于 2016-03-01T18:23:22.183 回答