Windows下Docker安装Kafka3+集群

本文详细描述了如何使用docker-compose.yaml文件配置并启动一个由三个Kafka节点组成的集群,以及配置Kafka-ui进行监控,但遇到了连接超时问题,展示了启动过程和可能出现的错误解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写 docker-compose.yaml

 主要参照:https://www.cnblogs.com/wangguishe/p/17563274.html

version: "3"

services:

  kafka1:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka1
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:19092  # 传递回客户端的元数据,填写宿主机IP地址
      - [email protected]:9093
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_NODE_ID=1
      - KAFKA_KRAFT_CLUSTER_ID=jkUlhzQmQkic54LMxrB1oV
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - "/f/kafkadata/apps/kafka/kafka1_data:/bitnami"
    ports:
      - "19092:9092"
    networks:
      kafka:
        aliases:
          - kafka
          
  kafka2:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka2
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:29092  # 传递回客户端的元数据,填写宿主机IP地址
      - [email protected]:9093
      - KAFKA_BROKER_ID=2
      - KAFKA_CFG_NODE_ID=2
      - KAFKA_KRAFT_CLUSTER_ID=jkUlhzQmQkic54LMxrB1oV
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - "/f/kafkadata/apps/kafka/kafka2_data:/bitnami"
    ports:
      - "29092:9092"
    networks:
      kafka:
        aliases:
          - kafka

  kafka3:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka3
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KA
### 在 Windows 上通过 Docker 安装 Kafka #### 使用单节点 Zookeeper 和 Kafka 配置 为了在 Windows 上利用 Docker 安装并配置 Apache Kafka,可以采用如下方法: 启动命令行工具,在其中依次执行以下指令来获取所需的镜像文件。先拉取 Zookeeper 的官方镜像,因为它是 Kafka 所依赖的服务之一。 ```bash docker pull wurstmeister/zookeeper ``` 接着,启动 Zookeeper 实例,并映射其默认监听端口至主机上的相同位置以便于访问[^5]。 ```bash docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper ``` 随后,同样地为 Kafka 准备环境——下载对应的 Docker 镜像。 ```bash docker pull wurstmeister/kafka ``` 之后,创建一个新的名为 `kafka` 的容器实例,设置好必要的环境变量以指定连接到之前部署好的 Zookeeper 服务地址;同时开放对外通信所需的相关端口号。 ```bash docker run -d --name kafka \ --publish 9092:9092 \ --link zookeeper \ --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ --env KAFKA_ADVERTISED_HOST_NAME=localhost \ --env KAFKA_ADVERTISED_PORT=9092 \ wurstmeister/kafka ``` 此时已经成功搭建起了基本版的 Kafka 平台架构。如果想要进一步测试生产者功能,则可以在终端内键入下面这条语句尝试发送消息给主题 "test"[^1]。 ```bash echo 'Hello Kafka' | docker exec -i kafka kafka-console-producer.sh --broker-list localhost:9092 --topic test ``` 对于更复杂的场景比如集群模式下的多副本同步机制或是管理界面的支持,则可能涉及到更多组件(例如:Kafka Manager)以及更为详尽的参数调整过程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值