一、原生Docker命令
1. 删除所有dangling数据卷(即无用的Volume,僵尸文件)
2. 删除所有dangling镜像(即无tag的镜像)
3. 删除所有关闭的容器
二、镜像选择
环境为M1版本的mbp:
Zookeeper采用zookeeper Kafka采用wurstmeister/kafka Kafka-Manager采用scjtqs/kafka-manager Mysql采用mysql/mysql-server三、集群规划
1. 新建docker网络
2. 集群规划
hostname Ip addr port listener zook1 172.20.10.11 2184:2181 zook2 172.20.10.12 2185:2181 zook3 172.20.10.13 2186:2181 kafka1 172.20.10.14 内部9092:9092,外部9192:9192 kafka1 kafka2 172.20.10.15 内部9093:9093,外部9193:9193 kafka2 Kafka3 172.20.10.16 内部9094:9094,外部9194:9194 Kafka3 本机(宿主机Mbp) 172.20.10.2 kafka manager 172.20.10.10 9000:9000四、Zookeeper集群安装
1. 新建文件zk-docker-compose.yml
2. 执行脚本部署zookeeper至Docker:
五、Kafka集群安装
1. 新建文件kafka-docker-compose.yml
2. 执行脚本部署kafka至Docker:
3. listeners 和 advertised.listeners
listeners: 学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。 advertised.listeners:和 listeners 相比多了个 advertised。Advertised 的含义表示宣称的、公布的,就是说这组监听器是 Broker 用于对外发布的。比如说:
advertised_listeners 监听器会注册在 zookeeper 中;
当我们对 172.17.0.10:9092 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 INSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口;
同理,当我们对 <公网 ip>:端口 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 OUTSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口 172.17.0.10:9094;
总结:advertised_listeners 是对外暴露的服务端口,真正建立连接用的是 listeners。
4.安装kafka-manager
4.1 新建文件kafka-manager-docker-compose.yml
4.2 执行脚本部署kafka-manager至Docker:
4.3 配置Cluster
5. 测试kafka
5.1连接容器
进入kafka容器的命令行:
进入kafka所在目录:
5.2 创建Replication为2,Partition为2的topic
5.3 查看topic的状态
在kafka容器中的 opt/kafka_2.12-1.1.0/ 目录下输入
到此这篇关于docker搭建kafka集群的方法实现的文章就介绍到这了,更多相关docker搭建kafka集群内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/sinat_36053757/article/details/123724748