【问题标题】:Kafka cluster mode ports configurationKafka集群模式端口配置
【发布时间】:2019-07-23 18:48:24
【问题描述】:

我正在尝试部署一个具有 3 个 zookeeper 和 3 个 kafka 节点的 docker kafka 集群。 kafka 节点不断打印以下错误:

[main-SendThread(zookeeper-1:2181)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server zookeeper-1/10.0.0.5:2181. Will not attempt to authenticate using SASL (unknown error)
[main-SendThread(zookeeper-1:2181)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established to zookeeper-1/10.0.0.5:2181, initiating session
[main-SendThread(zookeeper-1:2181)] INFO org.apache.zookeeper.ClientCnxn - Unable to read additional data from server sessionid 0x0, likely server has closed socket, closing socket connection and attempting reconnect

当 zookeeper 节点持续打印时:

WARN Cannot open channel to 1 at election address
zookeeper-1/10.0.0.5:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
    java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
        at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
        at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:957)
    [2019-03-01 17:24:30,930] INFO Resolved hostname: zookeeper-1 to address: zookeeper-1/10.0.0.5 (org.apache.zookeeper.server.quorum.QuorumPeer)
    [2019-03-01 17:24:30,931] WARN Cannot open channel to 2 at election address zookeeper-2/10.0.0.7:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
    java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
        at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
        at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:957)

看起来zookeeper节点无法相互通信,但我检查了几次docker-compose yaml,我找不到奇怪的。有人可以帮帮我吗?

docker-compose.yaml:

version: '3.3'

networks:
  kafka_example:
    driver: overlay

services:
  zookeeper-1:
    image: confluentinc/cp-zookeeper:5.0.1
    volumes:
      - '/volumedockerkafka/zookeeper-1/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
      - '/volumedockerkafka/zookeeper-1/zookeeper_etc:/etc/zookeeper:rw'  # mount point
    environment:
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_SERVERS: zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
    networks:
      - kafka_example

  zookeeper-2:
    image: confluentinc/cp-zookeeper:5.0.1
    volumes:
      - '/volumedockerkafka/zookeeper-2/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
      - '/volumedockerkafka/zookeeper-2/zookeeper_etc:/etc/zookeeper:rw'  # mount point
    environment:
      ZOOKEEPER_SERVER_ID: 2
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_SERVERS: zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
    networks:
      - kafka_example

  zookeeper-3:
    image: confluentinc/cp-zookeeper:5.0.1
    volumes:
      - '/volumedockerkafka/zookeeper-3/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
      - '/volumedockerkafka/zookeeper-3/zookeeper_etc:/etc/zookeeper:rw'  # mount point
    environment:
      ZOOKEEPER_SERVER_ID: 3
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_SERVERS: zookeeper-1:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888
      ZOOKEEPER_TICK_TIME: 2000
      ZOOKEEPER_INIT_LIMIT: 5
      ZOOKEEPER_SYNC_LIMIT: 2
    networks:
      - kafka_example

  message_queue_kafka-1:
    image: confluentinc/cp-kafka:5.0.1
    volumes:
      - '/volumedockerkafka/kafka-1/kafka_data:/var/lib/kafka/data:rw'  # mount point
      - '/volumedockerkafka/kafka-1/kafka_etc:/etc/kafka:rw'
    environment:
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181'
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-1:9092
      KAFKA_BROKER_ID: 1
      KAFKA_SESSION_TIMEOUT_MS: 60000
      KAFKA_HEARTBEAT_INTERVAL_MS: 20000
      KAFKA_REBALANCE_TIMEOUT_MS: 300000
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    networks:
      - kafka_example

  message_queue_kafka-2:
    image: confluentinc/cp-kafka:5.0.1
    volumes:
      - '/volumedockerkafka/kafka-2/kafka_data:/var/lib/kafka/data:rw'  # mount point
      - '/volumedockerkafka/kafka-2/kafka_etc:/etc/kafka:rw'
    environment:
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181'
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-2:9092
      KAFKA_BROKER_ID: 2
      KAFKA_SESSION_TIMEOUT_MS: 60000
      KAFKA_HEARTBEAT_INTERVAL_MS: 20000
      KAFKA_REBALANCE_TIMEOUT_MS: 300000
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    networks:
      - kafka_example

  message_queue_kafka-3:
    image: confluentinc/cp-kafka:5.0.1
    volumes:
      - '/volumedockerkafka/kafka-3/kafka_data:/var/lib/kafka/data:rw'  # mount point
      - '/volumedockerkafka/kafka-3/kafka_etc:/etc/kafka:rw'
    environment:
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181'
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-3:9092
      KAFKA_BROKER_ID: 3
      KAFKA_SESSION_TIMEOUT_MS: 60000
      KAFKA_HEARTBEAT_INTERVAL_MS: 20000
      KAFKA_REBALANCE_TIMEOUT_MS: 300000
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    networks:
      - kafka_example

【问题讨论】:

    标签: docker apache-kafka apache-zookeeper confluent-platform


    【解决方案1】:

    我终于找到了奇怪的地方:https://forums.docker.com/t/cannot-get-zookeeper-to-work-running-in-docker-using-swarm-mode/27109/2

    为了让zookeeper集群工作,看来,当KAFKA_BROKER_ID为x时,你需要指定0.0.0.0作为主机名x。端口号似乎也无关紧要,因为它们是不同的机器(实际上)。

    这是我的新撰写文件:

    version: '3.3'
    
    networks:
      kafka_example:
          driver: overlay
    
    services:
      zookeeper-1:
          image: confluentinc/cp-zookeeper:5.0.1
          volumes:
            - '/volumedockerkafka/zookeeper-1/zookeeper_data:/var/lib/zookeeper:rw'
            - '/volumedockerkafka/zookeeper-1/zookeeper_etc:/etc/zookeeper:rw'
          environment:
            ZOOKEEPER_SERVER_ID: 1
            ZOOKEEPER_CLIENT_PORT: 2181
            ZOOKEEPER_SERVERS: 0.0.0.0:2888:3888;zookeeper-2:2888:3888;zookeeper-3:2888:3888
            ZOOKEEPER_TICK_TIME: 2000
            ZOOKEEPER_INIT_LIMIT: 5
            ZOOKEEPER_SYNC_LIMIT: 2
            ZOOKEEPER_MAX_CLIENT_CNXNS: 200
          networks:
          - kafka_example
    
      zookeeper-2:
          image: confluentinc/cp-zookeeper:5.0.1
          volumes:
            - '/volumedockerkafka/zookeeper-2/zookeeper_data:/var/lib/zookeeper:rw'
            - '/volumedockerkafka/zookeeper-2/zookeeper_etc:/etc/zookeeper:rw'
          environment:
            ZOOKEEPER_SERVER_ID: 2
            ZOOKEEPER_CLIENT_PORT: 2181
            ZOOKEEPER_SERVERS: zookeeper-1:2888:3888;0.0.0.0:2888:3888;zookeeper-3:2888:3888
            ZOOKEEPER_TICK_TIME: 2000
            ZOOKEEPER_INIT_LIMIT: 5
            ZOOKEEPER_SYNC_LIMIT: 2
            ZOOKEEPER_MAX_CLIENT_CNXNS: 200
          networks:
            - kafka_example
    
      zookeeper-3:
          image: confluentinc/cp-zookeeper:5.0.1
          volumes:
            - '/volumedockerkafka/zookeeper-3/zookeeper_data:/var/lib/zookeeper:rw'
            - '/volumedockerkafka/zookeeper-3/zookeeper_etc:/etc/zookeeper:rw'
          environment:
            ZOOKEEPER_SERVER_ID: 3
            ZOOKEEPER_CLIENT_PORT: 2181
            ZOOKEEPER_SERVERS: zookeeper-1:2888:3888;zookeeper-2:2888:3888;0.0.0.0:2888:3888
            ZOOKEEPER_TICK_TIME: 2000
            ZOOKEEPER_INIT_LIMIT: 5
            ZOOKEEPER_SYNC_LIMIT: 2
            ZOOKEEPER_MAX_CLIENT_CNXNS: 200
          networks:
            - kafka_example
    
      message_queue_kafka-1:
          image: confluentinc/cp-kafka:5.0.1
          volumes:
            - '/volumedockerkafka/kafka-1/kafka_data:/var/lib/kafka/data:rw'
            - '/volumedockerkafka/kafka-1/kafka_etc:/etc/kafka:rw'
          environment:
            KAFKA_BROKER_ID: 1
            KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-1:9092
            KAFKA_SESSION_TIMEOUT_MS: 60000
            KAFKA_HEARTBEAT_INTERVAL_MS: 20000
            KAFKA_REBALANCE_TIMEOUT_MS: 300000
          depends_on:
            - zookeeper-1
            - zookeeper-2
            - zookeeper-3
          networks:
            - kafka_example
    
      message_queue_kafka-2:
          image: confluentinc/cp-kafka:5.0.1
          volumes:
            - '/volumedockerkafka/kafka-2/kafka_data:/var/lib/kafka/data:rw'
            - '/volumedockerkafka/kafka-2/kafka_etc:/etc/kafka:rw'
          environment:
            KAFKA_BROKER_ID: 2
            KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-2:9092
            KAFKA_SESSION_TIMEOUT_MS: 60000
            KAFKA_HEARTBEAT_INTERVAL_MS: 20000
            KAFKA_REBALANCE_TIMEOUT_MS: 300000
          depends_on:
            - zookeeper-1
            - zookeeper-2
            - zookeeper-3
          networks:
            - kafka_example
    
      message_queue_kafka-3:
          image: confluentinc/cp-kafka:5.0.1
          volumes:
            - '/volumedockerkafka/kafka-3/kafka_data:/var/lib/kafka/data:rw'
            - '/volumedockerkafka/kafka-3/kafka_etc:/etc/kafka:rw'
          environment:
            KAFKA_BROKER_ID: 3
            KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181,zookeeper-3:2181
            KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-3:9092
            KAFKA_SESSION_TIMEOUT_MS: 60000
            KAFKA_HEARTBEAT_INTERVAL_MS: 20000
            KAFKA_REBALANCE_TIMEOUT_MS: 300000
          depends_on:
            - zookeeper-1
            - zookeeper-2
            - zookeeper-3
          networks:
            - kafka_example
    

    【讨论】:

    • 这很奇怪,因为我从来没有这样做过。与 confluent repo 中的示例也不同。无论如何,很高兴它对你有用。
    【解决方案2】:

    我有一个类似的设置,3 个动物园管理员和 3 个经纪人,它运行良好。我注意到三件事,你的设置与我的不同,第二件事我确定是一个问题(我做了同样的事情但没有工作)

    1. 对于ZOOKEEPER_SERVERS,您为所有动物园管理员2888:3888 使用相同的端口组合。据我所知,您应该有不同的端口check this example as a reference
    2. 您为所有 zookeeper 实例使用相同的ZOOKEEPER_CLIENT_PORT,请考虑为每个实例使用不同的ZOOKEEPER_SERVERS 中使用的端口。
    3. 对于 kafka 服务,环境变量 KAFKA_ZOOKEEPER_CONNECT 的值用单引号引起来,我不认为这是一个问题,但与您的其余配置有点不一致.

    然后考虑将 ZOOKEEPER_SERVERSZOOKEEPER_CLIENT_PORT 的值更改为如下所示:

    ZOOKEEPER_CLIENT_PORT: 22181
    ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
    

    还要记得相应地调整KAFKA_ZOOKEEPER_CONNECT 的值:

    KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181 
    

    clientPort监听客户端连接的端口

    server.X ...,请注意每个服务器名称后面的两个端口号:“2888”和“3888”。对等点使用前一个端口连接到其他对等点。这样的连接是必要的,以便对等方可以进行通信,例如,就更新顺序达成一致。更具体地说,ZooKeeper 服务器使用此端口将追随者连接到领导者。当一个新的领导者出现时,一个追随者使用这个端口打开一个到领导者的 TCP 连接。因为默认的leader选举也使用TCP,所以我们目前需要另一个端口来进行leader选举。这是服务器条目中的第二个端口。

    Zookeeper Docs提取

    所有的看起来应该是这样的(还没有测试过):

    version: '3.3'
    
    networks:
    kafka_example:
        driver: overlay
    
    services:
    zookeeper-1:
        image: confluentinc/cp-zookeeper:5.0.1
        volumes:
        - '/volumedockerkafka/zookeeper-1/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
        - '/volumedockerkafka/zookeeper-1/zookeeper_etc:/etc/zookeeper:rw'  # mount point
        environment:
        ZOOKEEPER_SERVER_ID: 1
        ZOOKEEPER_CLIENT_PORT: 22181
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_TICK_TIME: 2000
        ZOOKEEPER_INIT_LIMIT: 5
        ZOOKEEPER_SYNC_LIMIT: 2
        networks:
        - kafka_example
    
    zookeeper-2:
        image: confluentinc/cp-zookeeper:5.0.1
        volumes:
        - '/volumedockerkafka/zookeeper-2/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
        - '/volumedockerkafka/zookeeper-2/zookeeper_etc:/etc/zookeeper:rw'  # mount point
        environment:
        ZOOKEEPER_SERVER_ID: 2
        ZOOKEEPER_CLIENT_PORT: 32181
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_TICK_TIME: 2000
        ZOOKEEPER_INIT_LIMIT: 5
        ZOOKEEPER_SYNC_LIMIT: 2
        networks:
        - kafka_example
    
    zookeeper-3:
        image: confluentinc/cp-zookeeper:5.0.1
        volumes:
        - '/volumedockerkafka/zookeeper-3/zookeeper_data:/var/lib/zookeeper:rw'  # mount point
        - '/volumedockerkafka/zookeeper-3/zookeeper_etc:/etc/zookeeper:rw'  # mount point
        environment:
        ZOOKEEPER_SERVER_ID: 3
        ZOOKEEPER_CLIENT_PORT: 42181
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_TICK_TIME: 2000
        ZOOKEEPER_INIT_LIMIT: 5
        ZOOKEEPER_SYNC_LIMIT: 2
        networks:
        - kafka_example
    
    message_queue_kafka-1:
        image: confluentinc/cp-kafka:5.0.1
        volumes:
        - '/volumedockerkafka/kafka-1/kafka_data:/var/lib/kafka/data:rw'  # mount point
        - '/volumedockerkafka/kafka-1/kafka_etc:/etc/kafka:rw'
        environment:
        KAFKA_LOG4J_OPTS: '-Dlog4j.configuration=file:/etc/kafka/json_log4j.properties'
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-1:9092
        KAFKA_BROKER_ID: 1
        KAFKA_SESSION_TIMEOUT_MS: 60000
        KAFKA_HEARTBEAT_INTERVAL_MS: 20000
        KAFKA_REBALANCE_TIMEOUT_MS: 300000
        depends_on:
        - zookeeper-1
        - zookeeper-2
        - zookeeper-3
        networks:
        - kafka_example
    
    message_queue_kafka-2:
        image: confluentinc/cp-kafka:5.0.1
        volumes:
        - '/volumedockerkafka/kafka-2/kafka_data:/var/lib/kafka/data:rw'  # mount point
        - '/volumedockerkafka/kafka-2/kafka_etc:/etc/kafka:rw'
        environment:
        KAFKA_LOG4J_OPTS: '-Dlog4j.configuration=file:/etc/kafka/json_log4j.properties'
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-2:9092
        KAFKA_BROKER_ID: 2ori
        KAFKA_SESSION_TIMEOUT_MS: 60000
        KAFKA_HEARTBEAT_INTERVAL_MS: 20000
        KAFKA_REBALANCE_TIMEOUT_MS: 300000
        depends_on:
        - zookeeper-1
        - zookeeper-2
        - zookeeper-3
        networks:
        - kafka_example
    
    message_queue_kafka-3:
        image: confluentinc/cp-kafka:5.0.1
        volumes:
        - '/volumedockerkafka/kafka-3/kafka_data:/var/lib/kafka/data:rw'  # mount point
        - '/volumedockerkafka/kafka-3/kafka_etc:/etc/kafka:rw'
        environment:
        KAFKA_LOG4J_OPTS: '-Dlog4j.configuration=file:/etc/kafka/json_log4j.properties'
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://message_queue_kafka-3:9092
        KAFKA_BROKER_ID: 3
        KAFKA_SESSION_TIMEOUT_MS: 60000
        KAFKA_HEARTBEAT_INTERVAL_MS: 20000
        KAFKA_REBALANCE_TIMEOUT_MS: 300000
        depends_on:
        - zookeeper-1
        - zookeeper-2
        - zookeeper-3
        networks:
        - kafka_example
    

    更新

    这是我正在使用的 docker-compose,在我的设置中,容器可以位于两个物理主机中的任何一个中。

    version: '2'
    services:
    zookeeper-3:
        image: confluentinc/cp-zookeeper:5.1.1
        environment:
        ZOOKEEPER_CLIENT_PORT: '42181'
        ZOOKEEPER_INIT_LIMIT: '5'
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_SERVER_ID: '3'
        ZOOKEEPER_SYNC_LIMIT: '2'
        ZOOKEEPER_TICK_TIME: '2000'
    zookeeper-2:
        image: confluentinc/cp-zookeeper:5.1.1
        environment:
        ZOOKEEPER_CLIENT_PORT: '32181'
        ZOOKEEPER_INIT_LIMIT: '5'
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_SERVER_ID: '2'
        ZOOKEEPER_SYNC_LIMIT: '2'
        ZOOKEEPER_TICK_TIME: '2000'
    zookeeper-1:
        image: confluentinc/cp-zookeeper:5.1.1
        environment:
        ZOOKEEPER_CLIENT_PORT: '22181'
        ZOOKEEPER_INIT_LIMIT: '5'
        ZOOKEEPER_SERVERS: zookeeper-1:22888:23888;zookeeper-2:32888:33888;zookeeper-3:42888:43888
        ZOOKEEPER_SERVER_ID: '1'
        ZOOKEEPER_SYNC_LIMIT: '2'
        ZOOKEEPER_TICK_TIME: '2000'
    kafka-1:
        image: confluentinc/cp-enterprise-kafka:5.1.1
        environment:
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:19092
        KAFKA_BROKER_ID: '1'
        KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: '0'
    kafka-2:
        image: confluentinc/cp-enterprise-kafka:5.1.1
        environment:
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:29092
        KAFKA_BROKER_ID: '2'
        KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: '0'
    kafka-3:
        image: confluentinc/cp-enterprise-kafka:5.1.1
        environment:
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-3:39092
        KAFKA_BROKER_ID: '3'
        KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
        KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:22181,zookeeper-2:32181,zookeeper-3:42181
        KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: '0'
    

    【讨论】:

    • 我已经尝试了您的更改,并且部分识别错误,它给了我与以前相同的错误。您使用的是哪个版本的撰写?您链接的文档适用于 2,但我使用的是 3.3
    • 我也明白,如果我在 zookeeper-1 和 zookeeper-2 上使用相同的端口,这应该不是问题,因为我没有在同一个端口上发布它们,不是吗?
    • 我使用的compose版本是2,但这是因为我在rancher中运行集群。将在我的本地尝试使用版本 3 并在此处发布我的 docker compose。
    猜你喜欢
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2019-02-27
    • 2019-07-22
    • 1970-01-01
    • 2021-06-12
    相关资源
    最近更新 更多