OpenShift - 无法从 KafkaJS 连接 Strimzi

OpenShift - Unable to connect Strimzi from KafkaJS

我在 OpenShift 上成功设置了 Strimzi Kafka 集群。我可以看到以下服务:

这其实和叫出来的here; so, not sure, if this is a Strimzi installation issue. I followed installation steps from here是不一样的。

我在端口 9092(非 TLS 客户端)上为 kafka-bootstrapkafka-brokers 创建了一个路由。在这两种情况下,我在提供路由值时都会收到 ECONNREFUSED 错误(例如 kafkajs.

示例中的 my-cluster-myproject.192.168.99.100.nip.io:9092

如何让 kafkajs 包连接到 Strimzi 集群?

你检查过external listeners了吗?

顺便说一句,如果你需要通过路由器暴露strimzi,TLS加密是必要的。 OpenShift 路由器不支持 TCP,但支持 TLS。

您看到的 Strimzi 服务是正确的,但为了访问 Kafka 代理,最好使用 bootstrap 服务,它只允许在 [=16= 中指定一个 "broker" ] 服务器列表,它会 select 代理第一次连接然后获取元数据(它避免你使用无头服务连接,在这种情况下 pod IP 可以在重新启动时更改)。 所以说,如果您需要从 OpenShift 外部访问代理,则不必手动为 bootstrap 服务创建路由,但您必须使用类型配置外部侦听器 (https://strimzi.io/docs/latest/#assembly-configuring-kafka-broker-listeners-deployment-configuration-kafka) route。 如上所述,OpenShift 路由仅适用于 TCP 连接的 TLS。 为了向您的客户提供用于 TLS 的正确证书,您可以遵循文档的这一部分:https://strimzi.io/docs/latest/#kafka_client_connections