node.js - OpenShift - 无法从 KafkaJS 连接 Strimzi
问题描述
我在 OpenShift 上成功设置了 Strimzi Kafka 集群。我可以看到以下服务:
kafka-brokers
kafka-bootstrap
zookeeper-client
zookeeper-nodes
这实际上与这里所说的不同;所以,不确定这是否是 Strimzi 安装问题。我从这里按照安装步骤操作。
kafka-bootstrap
我为kafka-brokers
端口9092
(非 TLS 客户端)创建了一个路由。在这两种情况下,ECONNREFUSED
当我提供路由值时都会出现错误(例如my-cluster-myproject.192.168.99.100.nip.io:9092
,在kafkajs的示例中。
如何将kafkajs
包连接到 Strimzi 集群?
解决方案
您看到的 Strimzi 服务是正确的,但为了访问 Kafka 代理,最好使用引导服务,该服务允许在客户端的引导服务器列表中仅指定一个“代理”,它将选择一个代理来连接第一次然后获取元数据(它避免你使用无头服务连接,其中 pod IP 可以在重启时更改)。也就是说,如果您需要从 OpenShift 外部访问代理,则不必手动为引导服务创建路由,但必须配置外部侦听器(https://strimzi.io/docs/latest/#装配-配置-kafka-broker-listeners-deployment-configuration-kafka)类型route
. 如上所述,OpenShift 路由仅适用于 TCP 连接的 TLS。为了向您的客户提供用于 TLS 的正确证书,您可以遵循文档的这一部分:https ://strimzi.io/docs/latest/#kafka_client_connections
推荐阅读
- c# - SQLParameterCollection AddWithValue 和 Add 不转义通配符
- c++ - 将char数组分配给指针
- java - java `indexOf` 用于`float[]`
- python - 如何在keras中协调图像和矩阵输入?
- javascript - 循环通过 MVCArray 将纬度和经度保存在数据库中
- python - 如何使用用户指定的列构建 SQL Select 语句?
- python - openpyxl - 如何用前导单引号放置价值
- python - 复制和替换 numpy 数组中的值.. nans 将是 nan 但其他值将为零
- jquery - jQuery中数组内部的对象内部的数组
- node.js - 如何在 Azure 函数 HttpTriggers (Node) 中使用 cookie