是否可以在不重启 KAFKA 客户端的情况下更改 bootstrap 服务器?

Can the bootstrap servers be changed without restarting the KAFKA clients?

KAFKA 客户端(生产者和消费者)通过连接到一个已配置的 bootstrap 服务器来发现拓扑,然后它将直接与集群中的那些代理节点集一起工作。

有了这个标准,我们可以通过更改 bootstrap 服务器来更改生产者和消费者,而无需重新启动它们以使用不同的集群吗?我们可以在不重新启动客户端的情况下更改 bootstrap 服务器配置吗?

有一个名为 metadata.max.age.ms 的客户端配置,它将强制客户端刷新代理拓扑,但它仅涵盖添加到集群的新分区领导者和新代理节点。

这主要是为了涵盖DC中的KAFKA集群由于某些意外原因而关闭以及来自同一DC的客户端已经与同一DC KAFKA集群建立连接并想要探索重定向选项的场景已经开始KAFKA 客户端与其他 DC KAFKA 集群一起工作,以防同一个 DC 集群出现故障。

您无法在官方 Kafka 客户端中更改已配置的 bootstrap 服务器。

客户端能够从初始 bootstrap 服务器发现完整的 Kafka 集群,并将定期刷新此数据(每 metadata.max.age.ms),但它们不能动态移动到另一个集群。

如您所述,需要重新启动客户端以指向新集群。