0

我有一个用于消费和生产的多节点 Kafka 集群。

在我的应用程序中,我使用 confluent-kafka-go(1.6.1) 创建生产者和消费者。当我生产和消费消息时,一切都很好。这就是我配置引导服务器列表的方式

"bootstrap.servers":"localhost:9092,localhost:9093,localhost:9094"

但是当我开始给出经纪人的IP地址时bootstrap.servers,如果第一个经纪人出现故障,似乎生产者反复失败创建告诉

Failed to initialize Producer ID: Local: Timed out

如果我删除故障节点的 IP,则生成和使用消息会起作用。如果在我创建生产者/消费者之后代理关闭,它们可以通过切换到其他节点继续使用。

我应该如何配置bootstrap.servers以使用可用节点创建生产者?

4

1 回答 1

0

无论如何,您实际上不应该在同一台机器上运行 3 个代理,但是当第一个服务器出现故障时,使用多个唯一服务器对我来说效果很好(如果需要,集群会选择不同的领导者),所以听起来您要么失去了您的主题分区的主要领导者,或者您已经失去了控制器。在生产者上启用退休应该能够自行修复(通过向分区领导者发出新的元数据请求)

总的来说,它只是一个 CSV;没有其他方法可以配置该属性本身。您可以在仅解析到健康节点的代理前面放置一个反向代理,但随后您将与潜在的 DNS 缓存发生冲突

于 2021-06-05T13:58:36.807 回答