容器化部署Kafka的最佳实践:基于KRaft模式的无ZooKeeper方案
前言
关于: KRaft模式下的Kafka启动指南:摆脱Zookeeper依赖 请参考这篇文章
本文主要参数如何 快速使用容器化方式快速的部署 kafka
一、docker 部署kafka单节点
1.1安装docker
可以参考这篇 CentOS 7安装docker并配置镜像加速
1.3 运行kafka(注意修改zookeeper,kafka地址)
docker run -d --name kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.10.180:9092 -p 9092:9092 -v /home/application/Middleware/kafka/data:/var/lib/kafka/data --restart=always docker.cnb.cool/srebro/docker-images/kafka-kraft:3.7.2
1.4 登录kafka容器,创建topic
docker exec -it kafka bash
cd /opt/kafka/bin
./kafka-topics.sh --create --topic my_topic_srebro.cn --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
1.5 登录kafka容器,启动一个生产者
docker exec -it kafka bash
cd /opt/kafka/bin
./kafka-console-producer.sh --topic my_topic_srebro.cn --bootstrap-server localhost:9092
1.6 新开一个终端窗口,登录kafka容器,启动一个消费者
docker exec -it kafka bash
cd /opt/kafka/bin
./kafka-console-consumer.sh --topic my_topic_srebro.cn --bootstrap-server localhost:9092 --from-beginning
1.7 模拟在生产者上,测试几条数据,观察消费者上有没有收到数据
1.8 kafka map 管理工具
A beautiful, concise and powerful kafka web management tool. 一个美观简洁且强大的kafka web管理工具。
- 官方帮助手册: https://github.com/dushixiang/kafka-map/blob/master/README-zh_CN.md
docker run -d \
-p 8080:8080 \
-v /opt/kafka-map/data:/usr/local/kafka-map/data \
-e DEFAULT_USERNAME=admin \
-e DEFAULT_PASSWORD=admin \
--name kafka-map \
--restart always dushixiang/kafka-map:latest
二、docker-compose 部署kafka单节点
2.1 安装docker-compose
可以参考这篇Cenotos7 安装docker-compose
2.2 编排docker-compose文件
注意先要创建docker 单独的网络
创建自定义网络 : docker network create -d bridge --subnet "192.168.10.0/24" --gateway "192.168.10.1" srebro.cn
version: '3'
services:
kafka:
image: docker.cnb.cool/srebro/docker-images/kafka-kraft:3.7.2
container_name: kafka
networks:
- srebro.cn
environment:
#KAFKA_LISTENERS: PLAINTEXT://:9092 # Kafka 监听端口配置
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.16.10.180:9092 # Kafka 对外公布的地址
#KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT # 监听器与安全协议的映射
#KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT # Broker 间通信使用的监听器
ports:
- "9092:9092"
volumes:
- /home/application/Middleware/kafka/data:/var/lib/kafka/data
restart: always
kafka-map:
#image: dushixiang/kafka-map:latest
image: docker.cnb.cool/srebro/docker-images/dushixiang-kafka-map:latest #加速地址
container_name: kafka-map
networks:
- srebro.cn
volumes:
- "/home/application/Middleware/kafka/kafka-map/data:/usr/local/kafka-map/data"
ports:
- 19006:8080
environment:
DEFAULT_USERNAME: admin
DEFAULT_PASSWORD: 123456
depends_on:
- kafka
restart: 'unless-stopped'
networks:
srebro.cn:
external: true
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果