@[TOC](我们来看kafka – 集群搭建(Docker-win环境))
要求
镜像选择
为什么使用:bitnami/kafka,官方介绍如下
- Bitnami密切跟踪上游源的变化,并使用我们的自动化系统及时发布此图像的新版本。
- 有了Bitnami映像,最新的错误修复和特性就可以尽快获得。
- Bitnami容器、虚拟机和云映像使用相同的组件和配置方法——使得根据项目需要在格式之间切换变得很容易。
- 我们所有的映像都基于minideb——一个基于Debian的极简的容器映像,它为您提供了一个小型的基本容器映像,并使您熟悉领先的Linux发行版——或者scratch——一个显式空映像。
- Docker Hub中可用的所有Bitnami映像都使用Notation签名。查看这篇文章,了解如何验证图像的完整性。
- Bitnami容器映像会定期发布,其中包含可用的最新发行包。
目录创建
编排文件
- “bitnami/kafka 3.7.0”版本,支持zk或raft模式,编排文件配置了zk模式(3.3版本后不强依赖zk)
version: "2"
networks:
zk-net:
external:
name: zk-net
services:
kafka1:
image: 'bitnami/kafka:latest'
restart: always
container_name: kafka1
hostname: kafka1
ports:
- '9092:9092'
environment:
- ALLOW_NONE_AUTHENTICATION=yes
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_BROKER_ID=1
- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:9092
- KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181 // 配置了zk模式
volumes:
- /D/project/tools/DockerCompose/bigData/kafka-cluster/k1:/bitnami/kafka
networks:
- zk-net
kafka2:
image: 'bitnami/kafka:latest'
restart: always
container_name: kafka2
hostname: kafka2
ports:
- '9093:9093'
environment:
- ALLOW_NONE_AUTHENTICATION=yes
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_BROKER_ID=2
- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9093
- KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181
volumes:
- /D/project/tools/DockerCompose/bigData/kafka-cluster/k2:/bitnami/kafka
networks:
- zk-net
kafka3:
image: 'bitnami/kafka:latest'
restart: always
container_name: kafka3
hostname: kafka3
ports:
- '9094:9094'
environment:
- ALLOW_NONE_AUTHENTICATION=yes
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_BROKER_ID=3
- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9094
- KAFKA_CFG_ZOOKEEPER_CONNECT=zoo1:2181,zoo2:2181,zoo3:2181
volumes:
- /D/project/tools/DockerCompose/bigData/kafka-cluster/k3:/bitnami/kafka
networks:
- zk-net
运行
- 启动zk集群
- 启动kafka集群
- 检查启动情况
测试
- 主题创建及查看