目录
一、安装Docker及可视化工具
二、Docker部署Zookeeper
三、单节点部署
1、创建挂载目录
2、运行Kafka容器
3、Compose运行Kafka容器
4、查看Kafka运行状态
5、验证生产消费
四、部署可视化工具
1、创建挂载目录
2、Compose运行Kafka-eagle容器
3、查看Kafka-eagle运行状态
一、安装Docker及可视化工具
为了简化安装过程并确保环境一致性,推荐使用 Docker 来本地部署 Kafka。这不仅能够快速启动服务,还能有效解决不同操作系统之间的兼容性问题,采用隔离环境的方式,避免了因环境差异导致的问题。
- Linux环境安装Docker可参考:Ubuntu上安装 Docker及可视化管理工具
- Windows环境安装Docker可参考:WSL2中安装Docker—部署Docker Engine方案
二、Docker部署Zookeeper
- Docker中部署Zookeeper镜像可参考:保姆级教程Docker部署Zookeeper官方镜像
三、单节点部署
1、创建挂载目录
# 创建宿主机kafka挂载目录
sudo mkdir -p /data/docker/kafka/data# 修改data目录权限
sudo chmod 777 /data/docker/kafka/data
2、运行Kafka容器
# 拉取镜像
sudo docker pull bitnami/kafka:3.4.0# 运行容器
sudo docker run --privileged=true \
--net=bridge \
-d --name=kafka \
-v /data/docker/kafkat/data:/bitnami/kafka/data \
-p 9092:9092 -p 9093:9093 \
-e LANG=C.UTF-8 \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092
-e ALLOW_PLAINTEXT_LISTENER=yes
-e BITNAMI_DEBUG=yes
bitnami/kafka:3.4.0
参数解析如下:
参数 | 参数说明 |
docker run | 运行 Docker 容器 |
-d | 容器将在后台运行,而不是占用当前的终端会话 |
--privileged=true | Docker会赋予容器几乎与宿主机相同的权限 |
--net=bridge | 网络模式配置,默认是bridge,bridge表示使用容器内部配置网络 |
--name kafka | 给容器命名为 kafka,以便于管理和引用该容器 |
-p 9092:9092 -p 9093:9093 | 映射 kafka 的客户端通信端口和控制器端口 |
-e KAFKA_CFG_ZOOKEEPER_CONNECT= zookeeper:2181 | zookeeper的连接地址 |
-e KAFKA_CFG_LISTENERS= PLAINTEXT://:9092,CONTROLLER://:9093 | 表示Kafka要监听哪些端口,PLAINTEXT://:9092,CONTROLLER://:9093表示本节点作为混合节点,监听本机所有可用网卡的9092和9093端口,其中9092作为客户端通信端口,9093作为控制器端口 |
-e KAFKA_CFG_ADVERTISED_LISTENERS= PLAINTEXT://192.168.3.9:9092 | 配置Kafka的外网地址,需要修改为对应的Kafka的外网地址。 |
-e ALLOW_PLAINTEXT_LISTENER=yes | 允许Kafka监听器使用明文传输 |
-e BITNAMI_DEBUG=yes | 显示详细报错信息 |
3、Compose运行Kafka容器
创建docker-compose.yml文件
sudo touch /data/docker/kafka/docker-compose.yml
文件内容如下:
version: '3'services:kafka:image: bitnami/kafka:3.4.0container_name: kafkaports:- "9092:9092"- "9093:9093"environment:- KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.3.9:2181- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092- ALLOW_PLAINTEXT_LISTENER=yes- BITNAMI_DEBUG=yesvolumes:- /data/docker/kafka/data:/bitnami/kafka/dataprivileged: truenetwork_mode: "bridge"
运行容器
#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka/docker-compose.yml up -d
4、查看Kafka运行状态
5、验证生产消费
验证步骤如下,分别创建一个生产者和一个消费者,查看消费者是否能够收到生产者生产的消息
# 进入kafka容器内
sudo docker exec -it kafka /bin/bash# 进入kafka安装目录
cd /opt/bitnami/kafka/bin# 生产消息
./kafka-console-producer.sh --topic test01 --bootstrap-server localhost:9092# 消费消息
./kafka-console-consumer.sh --topic test01 --from-beginning --bootstrap-server localhost:9092 --group group01# 查询主题列表
./kafka-topics.sh --bootstrap-server localhost:9092 --list# 查询消费组列表
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
生产消息
消费消息
验证结果表明,kafka部署正常,可正常生产和消费消息
四、部署可视化工具
Zookeeper模式的Kafka推荐使用Kafka Eagle进行可视化管理。Kafka Eagle 是一款开源的 Kafka 监控和管理工具,主要用于监控 Kafka 集群的健康状态、性能指标以及管理主题和消费者组。
1、创建挂载目录
# 创建宿主机kafka-eagle挂载目录
sudo mkdir -p /data/docker/kafka-eagle
2、Compose运行Kafka-eagle容器
创建docker-compose.yml文件
sudo touch /data/docker/kafka-eagle/docker-compose.yml
文件内容如下:
version: '3'services:kafka-eagle:image: nickzurich/kafka-eagle:3.0.1container_name: kafka-eagleports:- "8048:8048"environment:- TZ=Asia/Shanghaivolumes:- /data/docker/kafka-eagle/config:/opt/efak/conf- /data/docker/kafka-eagle/data:/hadoop/efak/dbprivileged: truenetwork_mode: "bridge"
运行容器
#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka-eagle/docker-compose.yml up -d
3、查看Kafka-eagle运行状态
http://192.168.3.9:8048
用户名密码:admin/123456