MST

星途 面试题库

面试题:消息队列 Kafka基于Docker部署时的网络配置问题

在基于Docker部署Kafka消息队列时,如何配置网络使得Kafka容器与Zookeeper容器能够相互通信?请描述具体的网络模式选择及配置步骤。
11.4万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

网络模式选择

通常选择桥接网络模式(bridge network),Docker默认的桥接网络可以让同一网络下的容器相互通信。

配置步骤

  1. 创建自定义桥接网络
    docker network create my-kafka-network
    
  2. 启动Zookeeper容器并连接到自定义网络
    docker run -d --name zookeeper \
        --network my-kafka-network \
        -e ZOOKEEPER_CLIENT_PORT=2181 \
        -e ZOOKEEPER_TICK_TIME=2000 \
        confluentinc/cp-zookeeper:latest
    
  3. 启动Kafka容器并连接到自定义网络
    docker run -d --name kafka \
        --network my-kafka-network \
        -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
        -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 \
        -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
        confluentinc/cp-kafka:latest
    

通过以上步骤,Kafka容器与Zookeeper容器基于自定义的桥接网络 my-kafka-network 实现了相互通信。