用docker搭建kafka集群

阅读: 评论:0

用docker搭建kafka集群

用docker搭建kafka集群

 这次是额外搭建了一个zookeepr集群,然后联通kafka集群,仅供学习参考,进入正题

第一步:老规矩,拉取各自的镜像,如不会请看博主的其他文章docker安装kafka
第二步:创建docker的network网络
docker network create --driver bridge --subnet 10.32.0.0/16 zookeeper_network

第三步:创建zookeepr集群并加入网络
docker run -d -p 2183:2181 --name zookeeper_1 --privileged --network zk_network --ip 10.32.0.1 -v E:dockerImageDatazknode_1volumesdata:/data -v E:dockerImageDatazknode_1volumesdatalog:/datalog -v E:dockerImageDatazknode_1volumeslogs:/logs -e ZOO_MY_ID=1 -e "ZOO_SERVERS=server.1=10.32.0.1:2888:3888;2181 server.2=10.32.0.2:2888:3888;2181 server.3=10.32.0.3:2888:3888;2181" zookeeper
docker run -d -p 2184:2181 --name zookeeper_2 --privileged --network zk_network --ip 10.32.0.2 -v E:dockerImageDatazknode_2volumesdata:/data -v E:dockerImageDatazknode_2volumesdatalog:/datalog -v E:dockerImageDatazknode_2volumeslogs:/logs -e ZOO_MY_ID=2 -e "ZOO_SERVERS=server.1=10.32.0.1:2888:3888;2181 server.2=10.32.0.2:2888:3888;2181 server.3=10.32.0.3:2888:3888;2181" zookeeper
docker run -d -p 2185:2181 --name zookeeper_3 --privileged --network zk_network --ip 10.32.0.3 -v E:dockerImageDatazknode_3volumesdata:/data -v E:dockerImageDatazknode_3volumesdatalog:/datalog -v E:dockerImageDatazknode_3volumeslogs:/logs -e ZOO_MY_ID=3 -e "ZOO_SERVERS=server.1=10.32.0.1:2888:3888;2181 server.2=10.32.0.2:2888:3888;2181 server.3=10.32.0.3:2888:3888;2181" zookeeper
        这里我创建了三个zk搭成集群,分别更改不同的ip达成目的,各位一定要注意,这里的三个ip都是不同的,并最后都加入了SERVERS中,需要一一对应,否则会报错,ip其实就是我们刚刚在docker创建的网络,因为docker内部其实是隔离的,详细学习请移步专业博客,本文不做赘述
第四步:创建成功后,进入容器内部,查看集群状况
        zookeeper_1追随者、zookeeper_2领导者、zookeeper_3追随者

        到这一步说明zk集群创建成功,接下来创建kafka集群,并连接zk集群
第五步:创建kafka容器,连接zk
docker run -d --name kafka-1 -p 9092:9092 --network zk_network --ip 10.32.0.4 -e KAFKA_BROKER_ID=1 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ZOOKEEPER_CONNECT=10.32.0.1:2181,10.32.0.2:2181,10.32.0.3:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.32.0.4:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
docker run -d --name kafka-2 -p 9093:9093 --network zk_network --ip 10.32.0.5 -e KAFKA_BROKER_ID=2 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ZOOKEEPER_CONNECT=10.32.0.1:2181,10.32.0.2:2181,10.32.0.3:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.32.0.5:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 wurstmeister/kafka
docker run -id --name kafka-3 -p 9094:9094 --network zk_network --ip 10.32.0.6 -e KAFKA_BROKER_ID=3 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ZOOKEEPER_CONNECT=10.32.0.1:2181,10.32.0.2:2181,10.32.0.3:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.32.0.6:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 wurstmeister/kafka
        创建好后如下图所示,运行也没问题

第六步:进入kafka容器内部,创建topic主题,这里我就不演示了,需要的小伙伴可以参考我这篇文章window搭建kafka集群
        创建好topic后,我们就可以试试发送消息了,成败在此一举(发送消息是kafka-1)
kafka-console-producer.sh --bootstrap.server 10.32.0.4:9092 --topic test-topic

        消息发送成功,并且没有报错,说明我们在docker容器内的network网络将kafka和zookeeper连接成功,下面我们来看看其他kafka能否接收消息
        进入kafka-2、kafka-3容器内部,接收消息

        kafka-2接收消息成功,因为配置了--from-beginning,所以能接收历史消息

        kafka-3没有配置--from-beginning,所以暂无消息

到这里咱们用docker搭建zookeeper、kafka集群就大功告成,本文仅为学习笔记,仅供参考,如有不足欢迎指出,共同学习共同进步,感谢观看

本文发布于:2024-01-27 17:43:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063485931710.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:集群   docker   kafka
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23