【问题标题】:Can the bootstrap servers be changed without restarting the KAFKA clients?可以在不重新启动 KAFKA 客户端的情况下更改引导服务器吗?
【发布时间】:2019-05-28 16:41:54
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: apache-kafka kafka-consumer-api kafka-producer-api


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是我们猜到的。谢谢!在我接受这个答案之前,我只想检查一下。当您说“您无法在官方 Kafka 客户端中更改已配置的引导服务器”时,是否有任何扩展点可通过继承等实现动态更改引导服务器的所需功能(超时等)
    • 我不知道任何允许它的扩展(或 3rd 方客户端)。
    • 在这种情况下,如果我使用来自 DC 1 的引导列表中的第一个代理 URL 和来自 DC 2 的其他代理 URL,该怎么办?
    • 引导服务器条目在使用前会被打乱(以避免总是连接到第一个条目),因此您将获得的行为将是随机的
    猜你喜欢
    • 2015-07-30
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多