【发布时间】:2021-09-29 16:14:15
【问题描述】:
我的 Kafka 代理在专有云 IaaS 平台上运行。经纪人将每周左右搬迁到新的主机。当一个代理被重定位时,它会从其他代理恢复它的分区数据。如果所有经纪人都死了,我会丢失所有数据。
我有一个负载均衡器,用于在代理之间进行循环以进行引导。
当客户端连接(通过负载均衡器)时,Kafka 客户端将获取代理列表并将其存储以连接。
如果在客户端应用程序仍在运行时重新定位所有代理,则客户端应用程序将无法重新连接到集群。它不使用引导服务器重新查询新的代理列表,它会继续尝试连接到应用程序首次启动时它拥有的代理列表。
我怎样才能解决这个问题?我是否要更改 advertised.listeners 的代理配置以将固定负载均衡器主机:端口添加到每个代理?我会因为每个代理都为此配置设置相同的主机:端口而遇到问题吗?
【问题讨论】:
-
程序运行了多长时间,在您断定它不会尝试重新查询新的代理列表之前?
-
@JavaTechnical - 可以复制执行以下操作: 1. 启动客户端应用程序。 2.同时停止所有经纪人。 3. 经纪人将在其他服务器上启动。 4. 客户端应用无法重新连接集群
-
元数据刷新发生时应该获取新的代理详细信息,前提是负载平衡器 IP 与您在引导服务器中提供的 IP 相同。
标签: apache-kafka