我正在尝试在docker网络中本地启动和运行我的一项服务,但是一直在获取“消费者无法启动:连接被拒绝-127.0.0.1:9092的connect(2)” 例外。
zookeeper:
image: wurstmeister/zookeeper:3.4.6
restart: always
expose:
- "2181"
kafka:
depends_on:
- zookeeper
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
hostname: kafka
image: wurstmeister/kafka:2.11-2.0.0
restart: always
ports:
- "9092:9092"
expose:
- "9093"
links:
- zookeeper:zookeeper
这就是我在服务的docker-compose中为消费者设置的内容:
consumers:
environment:
- BROKER_URL=host.docker.internal:9092
那是错误消息:
..`block in execute'","/usr/local/bundle/gems/rake-12.3.2/lib/rake/task.rb:273:in `each'"],
"message":"Consumer failed to start: Connection refused - connect(2) for 127.0.0.1:9092"},
"message":"Consumer failed to start: Connection refused - connect(2) for 127.0.0.1:9092",
"@timestamp":"2020-05-24T18:08:09.434+00:00","@version":"1",
"severity":"ERROR","host":"87c5265c6a39"}
更新:在检查Kafkacat时:
kafkacat -L -b 127.0.0.1:9092
Metadata for all topics (from broker 0: 127.0.0.1:9092/0):
1 brokers:
broker 0 at 127.0.0.1:9092 (controller)
7 topics: ...
在Zookeeper CLI(在Docker中)检查时:
[zk: localhost:2181(CONNECTED) 2] ls /brokers/ids
[1001]
我已经尝试了几乎所有可以找到的东西,但仍然无法理解我缺少的东西。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
您连接到错误的听众。当您连接到9092时,代理返回localhost
供您的客户端随后连接。
连接到9093,它将使用kafka
,您的Docker网络中的使用者应该可以解析。