【发布时间】:2022-01-22 16:29:35
【问题描述】:
更新 我正在更新这篇文章以反映当前的配置(并且,在@OneCricketeer 响应之后,更多信息)
根据this 2018 blog(每个人似乎都提到)我正在使用此配置运行 Kafka(在 Docker Compose 堆栈中):
KAFKA_LISTENERS: DOCKER://kafka0:29092,LOCAL://localhost:9092
KAFKA_ADVERTISED_LISTENERS: DOCKER://kafka0:29092,LOCAL://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: DOCKER:PLAINTEXT,LOCAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: DOCKER
Kafka 代理应该同时监听端口 29092(在 Docker 网络“内部”使用)和端口 9092(由运行在主机上的客户端使用)。
问题是 Kafka 代理似乎仅在像这样启动时在端口 29092 上响应:
image: confluentinc/cp-kafka:7.0.1
hostname: kafka
container_name: kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
(environment 同上)
使用kafkacat,这是我通过上面的配置得到的:
└─( nc -vz localhost 9092
Connection to localhost 9092 port [tcp/*] succeeded!
└─( kafkacat -b localhost:9092 -L
% ERROR: Failed to acquire metadata: Local: Broker transport failure
端口 29092 上的打开和连接“按预期”工作,只是我必须绕过 /etc/hosts 以使 kafka0 指向 127.0.0.1,正如所指出的那样,这是一个非常糟糕的主意(因此整个这个问题的重点)。
那篇 Confluent 博客中的图表和文字让我相信,要么我在容器的配置中遗漏了某些东西,要么事情自 2018 年以来发生了变化。
【问题讨论】:
标签: apache-kafka