【问题标题】:Socket server failed to bind to kafka:29092: Cannot assign requested address套接字服务器无法绑定到 kafka:29092: 无法分配请求的地址
【发布时间】:2021-12-20 02:59:05
【问题描述】:

我正在尝试从以下 yaml 文件创建一个 kafka 服务器:

version: "3.9"

services:
  zookeeper:
    image: 'bitnami/zookeeper:latest'
    ports:
      - '2181:2181'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes

  kafka:
    image: 'bitnami/kafka:latest'
    ports:
      - '9092:9092'
    environment:
      - KAFKA_BROKER_ID=1
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
    depends_on:
      - zookeeper

但我收到一个错误:

ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
org.apache.kafka.common.KafkaException: Socket server failed to bind to kafka:29092: Cannot assign requested address.
    at kafka.network.Acceptor.openServerSocket(SocketServer.scala:667)
    at kafka.network.Acceptor.<init>(SocketServer.scala:560)
    at kafka.network.SocketServer.createAcceptor(SocketServer.scala:288)
    at kafka.network.SocketServer.$anonfun$createDataPlaneAcceptorsAndProcessors$1(SocketServer.scala:261)
    at kafka.network.SocketServer.$anonfun$createDataPlaneAcceptorsAndProcessors$1$adapted(SocketServer.scala:259)
    at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
    at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
    at kafka.network.SocketServer.createDataPlaneAcceptorsAndProcessors(SocketServer.scala:259)
    at kafka.network.SocketServer.startup(SocketServer.scala:131)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:296)
    at kafka.Kafka$.main(Kafka.scala:109)
    at kafka.Kafka.main(Kafka.scala)
Caused by: java.net.BindException: Cannot assign requested address
    at java.base/sun.nio.ch.Net.bind0(Native Method)
    at java.base/sun.nio.ch.Net.bind(Net.java:455)
    at java.base/sun.nio.ch.Net.bind(Net.java:447)
    at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
    at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:80)
    at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:73)
    at kafka.network.Acceptor.openServerSocket(SocketServer.scala:663)
    ... 12 more

我的配置有什么问题?

【问题讨论】:

    标签: docker apache-kafka docker-compose


    【解决方案1】:

    错误在于绑定侦听器。 KAFKA_LISTENERS 对于 bitnami 容器不正确。所有代理属性都应以KAFKA_CFG 开头,如其自述文件中所述。

    另外,您应该将KAFKA_CFG_LISTENERS 设置为使用IP 0.0.0.0 来接受所有接口上的所有流量

    【讨论】:

      【解决方案2】:

      不管怎样,这对我来说是正确的配置:

      version: "3.9"
      
      services:
        zookeeper:
          image: 'bitnami/zookeeper:latest'
          deploy:
            replicas: 1
          ports:
            - "2181:2181"
          environment:
            - ALLOW_ANONYMOUS_LOGIN=yes
      
        kafka:
          image: 'bitnami/kafka:latest'
          deploy:
            replicas: 1
          ports:
            - 9092:9092
          depends_on:
            - zookeeper
          environment:
            KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
            KAFKA_CFG_LISTENERS: INTERNAL://:9093,OUTSIDE://:9092
            KAFKA_CFG_ADVERTISED_LISTENERS: INTERNAL://kafka:9093,OUTSIDE://sub.domain.ltd:9092
            KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,OUTSIDE:PLAINTEXT
            KAFKA_CFG_INTER_BROKER_LISTENER_NAME: INTERNAL
            ALLOW_PLAINTEXT_LISTENER: "yes"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-05
        • 2021-07-05
        • 1970-01-01
        • 2012-12-25
        • 2018-07-16
        • 1970-01-01
        • 2021-10-28
        • 2019-12-26
        相关资源
        最近更新 更多