kafka客户机代码直接引用代理的ip和端口,如果关闭,zookeeper将直接指向另一个代理。zookeper总是在幕后吗
ia2d9nvy1#
如果您在客户机代码中只提供一个代理地址,并且它停止运行,再加上您的客户机重新启动,那么您的客户机也将停止运行。这里不会使用zookeeper,因为无法访问代理。如果您在客户机中提供了多个代理地址,那么kafka控制器进程会定期从zookeeper获取集群中所有活动代理的列表,并负责通过分配给它们的分区的前导将该信息发送回客户机,因此更具弹性。zookeeper在这里是间接使用的,但不与任何外部客户端通信
zkure5ic2#
如果我答对了问题,答案是否定的。Kafka的客户只需要联系Kafka经纪人,Zookeeper根本不参与。客户端需要写入/读取代理上的引导分区。如果代理列表中设置的kafka代理不可用,则客户端可以连接,并且无法开始发送/接收消息。只有在旧版本0.8.0中,zookeeper才涉及到消费者,从而在zookeeper上保存了偏移量。从0.9.0开始,消费者在kafka主题中保存偏移量,这样就不再需要zookeeper了。
2条答案
按热度按时间ia2d9nvy1#
如果您在客户机代码中只提供一个代理地址,并且它停止运行,再加上您的客户机重新启动,那么您的客户机也将停止运行。这里不会使用zookeeper,因为无法访问代理。
如果您在客户机中提供了多个代理地址,那么kafka控制器进程会定期从zookeeper获取集群中所有活动代理的列表,并负责通过分配给它们的分区的前导将该信息发送回客户机,因此更具弹性。zookeeper在这里是间接使用的,但不与任何外部客户端通信
zkure5ic2#
如果我答对了问题,答案是否定的。Kafka的客户只需要联系Kafka经纪人,Zookeeper根本不参与。客户端需要写入/读取代理上的引导分区。如果代理列表中设置的kafka代理不可用,则客户端可以连接,并且无法开始发送/接收消息。只有在旧版本0.8.0中,zookeeper才涉及到消费者,从而在zookeeper上保存了偏移量。从0.9.0开始,消费者在kafka主题中保存偏移量,这样就不再需要zookeeper了。