您现在的位置是:首页 >技术杂谈 >docker-compose 构建 Kafka 容器网站首页技术杂谈
docker-compose 构建 Kafka 容器
简介docker-compose 构建 Kafka 容器
- 在终端中创建一个名为 kafka 的目录,并进入该目录:
mkdir kafka
cd kafka
- 创建一个名为 docker-compose-kafka.yml 的文件并打开它。将以下代码复制到文件中:
sudo touch docker-compose-kafka.yml
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
# 允许Kafka Broker监听来自任何地址的请求, 这是因为容器默认使用网络地址转换(NAT), 因此无法使用localhost访问容器中的端口, 因此需要设置监听地址为0.0.0.0
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
depends_on:
- zookeeper
这份配置使用了 Docker Compose,定义了两个服务 Zookeeper 和 Kafka。
-
Zookeeper 服务定义:
- 使用 wurstmeister/zookeeper 镜像;
- 将容器的 2181 端口映射到宿主机的 2181 端口;
- 没有设置其他环境变量,使用默认配置
-
Kafka 服务定义:
- 使用 wurstmeister/kafka 镜像;
- 将容器的 9092 端口映射到宿主机的 9092 端口;
- 定义两个环境变量:
- KAFKA_ADVERTISED_LISTENERS:定义 Kafka 服务监听的地址,这里是 localhost:9092。在实际生产环境中,可以替换成实际的IP 或域名;
- KAFKA_LISTENERS:指定 Kafka Broker 监听的地址和协议,而 KAFKA_ADVERTISED_LISTENERS 指定了 Kafka Broker 向客户端或其他 Broker 公开的地址和协议,如果想要使用 KAFKA_ADVERTISED_LISTENERS 参数,则必须在文件中同时设置 KAFKA_LISTENERS 参数;
- KAFKA_ZOOKEEPER_CONNECT:定义 Kafka 使用的 Zookeeper 服务地址,这里是 zookeeper:2181。在实际生产环境中,可以替换成实际的 IP 或域名;
- KAFKA_CREATE_TOPICS:定义需要创建的主题和分区数等,这里创建了一个名为 test 的主题,有 1 个分区,备份数为 1
-
定义依赖关系,Kafka 服务需要等待 Zookeeper 服务启动完成后才能启动,这份配置可以一次性启动 Zookeeper 和 Kafka 服务,并且有方便的端口映射和环境变量配置,方便了 Kafka 集群的部署
- 运行以下命令以启动 Kafka 容器,该命令将会下载必要的 Docker 镜像并启动两个容器:
sudo docker-compose -f docker-compose-kafka.yml up -d
- 安装可视化工具 Kafka Tool
https://www.cnblogs.com/frankdeng/p/9452982.html
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。