Kafka Producers需要一个kafka经纪人的引导列表才能工作。 根据{{3}},它需要能够连接到其中一个代理,然后获取有关群集中所有实时代理的元数据。
现在,所有代理已经在Zookeeper中注册,Kafka消费者连接到ZK,ZK处理哪个代理,哪个分区是要读取的数据。当ZK已经拥有所有信息时,为什么生产者也不能连接到ZK?
我看到有一些SO问题,但它们似乎解释了为什么消费者需要ZK&不是为什么Producer需要bootstrap代理列表而不是ZK?
答案 0 :(得分:5)
过去,生产者和消费者都曾经过连接Zookeeper进行协调,但现在已经从中脱离出来了。使用Kafka 0.9中的新消费者API,客户不再需要了解Zookeeper,这似乎是Kafka客户的未来。除了将依赖关系和片状连接库移除到ZK之外,它还使得客户端协议的演变更容易,因为现在它完全由Kafka管理。
目前,两个消费者客户端都可以在Kafka 0.9中使用,但您应该准备好使用ZK连接的消费者客户端在未来版本中的某个时候可能会被弃用。