如何在不重启的情况下自动将kafka客户端切换到另一个集群

问题描述 投票:0回答:1

我正在学习kafka主备集群,通过阅读cloudera的文章使用配置的DNS别名连接到集群,我有一些问题

上述链接文章的重要部分:如果客户端发现了一个集群并正在积极使用它,并且该集群突然停止,则客户端会尝试连接到在引导阶段之前从 DNS 服务器获取的引导服务器。 因此,即使 DNS 记录已更改,它也不会自动向 DNS 服务器请求新的引导服务器,也不会故障转移到其他集群。

我的问题:有什么解决方案可以自动切换kafka客户端重新连接standy集群而不需要重启kafka客户端吗?

我使用dnsmasq服务模拟容灾场景,发现Kafka客户端无法自动切换连接的standy集群,除非我手动重启kafka客户端

java apache-kafka dns failover
1个回答
0
投票

我尝试了相同的方法,即使在强制触发重新平衡(通过创建假消费者)时,我观察到每个客户端都使用缓存的元数据直接与协调器交互,而无需再次查询引导服务器。

因此,不会重新查询引导服务器信息,强制执行此操作的唯一方法是重新启动客户端。

metadata.max.age.ms 参数还会导致从协调器请求元数据,而不是从引导服务器中设置的 DNS。

总而言之,目前除了重启客户端之外,似乎没有办法强制客户端重新查询引导服务器。

卡夫卡峰会上分享的例子是一个有希望的注释:

Uber 的 Kafka 集群联盟 在这种情况下,他们提到无需重新启动即可实现此目的,但视频没有提供有关他们使用的方法的具体细节。

© www.soinside.com 2019 - 2024. All rights reserved.