Kafka的客户是连接到zookeeper还是在幕后

qf9go6mv  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(413)

kafka客户机代码直接引用代理的ip和端口,如果关闭,zookeeper将直接指向另一个代理。zookeper总是在幕后吗

ia2d9nvy

ia2d9nvy1#

如果您在客户机代码中只提供一个代理地址,并且它停止运行,再加上您的客户机重新启动,那么您的客户机也将停止运行。这里不会使用zookeeper,因为无法访问代理。
如果您在客户机中提供了多个代理地址,那么kafka控制器进程会定期从zookeeper获取集群中所有活动代理的列表,并负责通过分配给它们的分区的前导将该信息发送回客户机,因此更具弹性。zookeeper在这里是间接使用的,但不与任何外部客户端通信

zkure5ic

zkure5ic2#

如果我答对了问题,答案是否定的。Kafka的客户只需要联系Kafka经纪人,Zookeeper根本不参与。客户端需要写入/读取代理上的引导分区。如果代理列表中设置的kafka代理不可用,则客户端可以连接,并且无法开始发送/接收消息。只有在旧版本0.8.0中,zookeeper才涉及到消费者,从而在zookeeper上保存了偏移量。从0.9.0开始,消费者在kafka主题中保存偏移量,这样就不再需要zookeeper了。

相关问题