You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac Docker Desktop下docker compose部署wurstmeister/kafka生产者无法连接

错误成因

wurstmeister/kafka镜像与Confluent官方Kafka镜像的监听器配置逻辑存在差异:

  • 你当前配置的KAFKA_LISTENERS中,外部监听器绑定的地址是localhost:9092,这会导致容器内的Kafka进程仅监听容器内部的回环网卡(lo)的9092端口,不会监听容器对外暴露的物理网卡端口
  • 宿主机发送到9092端口的请求虽然能进入容器网络栈,但因为Kafka没有在对应网卡上监听请求,会直接被内核断开连接,所以抛出EOF异常,且Kafka进程侧不会收到请求、没有相关日志输出

解决方案

修改docker-compose.yml中Kafka服务的KAFKA_LISTENERS配置,将外部监听器的绑定地址改为0.0.0.0(表示监听容器内所有网卡),KAFKA_ADVERTISED_LISTENERS保持不变即可,修改后的配置段如下:

kafka:
    container_name: kafka
    image: wurstmeister/kafka:2.13-2.7.0
    ports:
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: INTERNAL://kafka:19092,EXTERNAL://0.0.0.0:9092
      KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:19092,EXTERNAL://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 1
    restart: on-failure
    depends_on:
      - zookeeper

修改完成后执行以下命令重启服务生效:

docker compose down -v
docker compose up -d

内容的提问来源于stack exchange,提问作者amorfis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:00:00