【发布时间】:2022-07-10 02:12:04
【问题描述】:
我正在尝试与 AWS 上的 Kafka 建立连接。通过 TLS 进行通信。
使用的是Kafka-python==2.0.2,KafkaProducer配置如下:
From Kafka import KafkaProducer
producer = KafkaProducer(
bootstrap_servers=boostrap_servers, # I have three brokers in my Kafka cluster.
security_protocol='SSL',
ssl_check_hostname=False,
ssl_cafile=ssl_cafile,
value_serializer=lambda x: json.dumps(x, ensure_ascii=False).encode("utf-8"),
)
我在没有模式的情况下间歇性地遇到 NoBrokersAvailble 错误。一旦出现 NoBrokersAvailable,连接将继续失败。
我已经检查了与 AWS 上的 Kafka 集群连接是否有任何问题:
- 进行 nslookup 测试以检查 DNS 是否正常工作
- 在我运行 python 应用程序的同一台服务器上测试了 java 应用程序-Kafka 连接。它运行良好,没有任何错误。
- 没有防火墙问题
所以这些是我的问题:
- 在 Kafka-python 中发现连接失败时的默认重试次数是多少?
- 我发现在检查 Kafka 代理的版本时引发了 NoBrokersAvailable 错误;如果我指定我的 API 版本,我将不会收到 NoBrokersAvailable 错误。 但是为什么会时不时出现这个错误,而不是总是?为什么我的 python 应用程序检查版本有时会得到正确的返回值?
- 了解要设置的其他一些参数、要检查的服务器设置或任何其他预期错误点会很有帮助。
【问题讨论】:
标签: python apache-kafka kafka-producer-api kafka-python broker