2016-03-01 138 views
1

Kafka生产者需要一个kafka经纪人的引导列表才能工作。 根据this explanation,它需要能够连接到其中一个代理,然后获取有关集群中所有实时代理的元数据。为什么Kafka Producer无法连接到zookeeper获取经纪人元数据而不是连接到经纪人

现在,所有经纪人都已经在Zookeeper中注册,并且Kafka消费者连接到ZK,该ZK处理哪个经纪人,哪个分区是要读取的数据。当ZK已经拥有所有信息时,为什么生产商不能连接到ZK?

我看到这里有几个SO问题,但他们似乎解释了为什么消费者需要ZK &而不是为什么生产者需要经纪人而不是ZK的引导列表?

回答

2

过去生产者和消费者都曾经连接到Zookeeper进行协调,但现在已经逐渐远离。通过Kafka 0.9中的新消费者API,客户不再需要了解Zookeeper,这似乎是卡夫卡客户的未来。除了消除依赖关系和片状连接库到ZK之外,它还使得客户端协议的演化更加容易,因为这现在完全由Kafka管理。

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

+0

我正在使用8.2.1版本的客户端。我的制作人需要经纪人的引导列表,我的消费者需要动物园管理员连接。想知道为什么它保持这样的状态 – nikel

+0

你可以在http://kafka.apache.org/07/quickstart.html的文档页面看到它的演变,其中生产者和消费者的例子都使用ZK到最后本节中的行http://kafka.apache.org/documentation.html#security_ssl显示生产者和消费者直接在最新版本中连接到经纪商。 – Lundahl