首页 > 解决方案 > Kafka - 消费者无法启动:连接被拒绝 - 127.0.0.1:9092 的连接(2)

问题描述

我正在尝试在 docker 网络中本地启动并运行我的一项服务,但不断收到“Consumer failed to start: Connection denied - connect(2) for 127.0.0.1:9092”异常。

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]

我已经尝试了几乎所有我能找到的东西,但仍然无法理解我错过了什么。

任何帮助将不胜感激,谢谢!

标签: dockerapache-kafkadocker-compose

解决方案


您正在连接到错误的侦听器。当您连接到 9092 时,代理会返回localhost以供您的客户端随后连接。连接到 9093,它将使用kafkaDocker 网络中的消费者应该能够解决的问题。

参考:https ://rmoff.net/2018/08/02/kafka-listeners-explained/


推荐阅读