Java客户端配置了单个Kafka代理IP和要连接的端口,如果该代理在集群中关闭了怎么办

问题描述

我有一个Java使用方使用broker1:9092连接到kafka集群(3个代理)。然后,客户端将接收包含集群中代理的元数据,并将连接到其中任何一个。如果broker1本身关闭,会发生什么情况,我的使用者将其用于连接并获取元数据信息。我该如何解决这种情况。

我可以将Java使用者指向所有代理IP和端口吗?

解决方法

我可以将Java使用者指向所有代理IP和端口吗?

是的,您可以这样做。实际上,这就是为什么将配置名称称为bootstrap.servers,并在其末尾加上“ s”的原因。

根据KafkaConsumer上的JavaDocs,您可以提供一个或多个经纪人的逗号分隔列表:

“通过使用配置> bootstrap.servers指定要联系的一个或多个代理的列表来引导与群集的连接。此列表仅用于发现群集中的其余代理,而不必是群集中服务器的详尽列表(尽管您可能要指定多个服务器,以防客户端连接时服务器停机)。“