首页 > 解决方案 > 可以在不重新启动 KAFKA 客户端的情况下更改引导服务器吗?

问题描述

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

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

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

这主要是为了覆盖 DC 中的 KAFKA 集群由于某种意外原因而关闭的场景,以及来自同一个 DC 的客户端已经与同一个 DC KAFKA 集群建立连接并希望探索重定向已经启动的 KAFKA 客户端以使用的选项其他 DC KAFKA 集群,以防同一个 DC 集群出现故障。

标签: apache-kafkakafka-consumer-apikafka-producer-api

解决方案


您无法更改官方 Kafka 客户端中配置的引导服务器。

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

正如您所提到的,需要重新启动客户端以指向新集群。


推荐阅读