在使用Kafka客户端运行最基本的测试时,会出现
NoBrokersAvailable
错误。
我在Github工作流程设置如下: test:
runs-on: ubuntu-latest
services:
zoo_keeper:
image: bitnami/zookeeper
ports:
- 2181:2181
env:
ALLOW_ANONYMOUS_LOGIN: yes
options: >-
--health-cmd "echo mntr | nc -w 2 -q 2 localhost 2181"
--health-interval 10s
--health-timeout 5s
--health-retries 5
kafka:
image: bitnami/kafka
ports:
- 9092:9092
options: >-
--health-cmd "kafka-broker-api-versions.sh --version"
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
KAFKA_CFG_KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
ALLOW_PLAINTEXT_LISTENER: yes
KAFKA_CFG_LISTENERS: "CLIENT://:9092,INTERNAL://:9093"
KAFKA_CFG_ADVERTISED_LISTENERS: "CLIENT://localhost:9092,INTERNAL://kafka:9093"
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "CLIENT:PLAINTEXT,INTERNAL:PLAINTEXT"
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: INTERNAL
...
steps:
- name: test
...
run: pytest
在本地运行相同的设置(使用 docker-windows
),并在本地运行测试(而不是从容器中运行)可以成功连接到Kafka。
我的测试使用 KAFKA_URL=localhost:9092
并在 Github runner 主机上运行(而不是在容器中)。
在另一个测试中,我成功连接到了 postgres
(使用 localhost 作为主机名)。
我确定这是一些配置错误,我缺少什么?