当前位置:   article > 正文

docker-compose搭建zookeeper+kafka集群_docker-compose部署kafka直接同时部署zk么

docker-compose部署kafka直接同时部署zk么

一、准备好docker环境,下载zookeeper和kafka镜像

  1. docker search zookeeper #检索zookeeper镜像
  2. docker pull <imagename> #根据检索的结果下载自己想要的镜像和版本
  3. docker search kafka #检索Kafka镜像
  4. docker pull <imagename> #根据检索的结果下载自己想要的镜像和版本
  5. docker images -a 查看已下载的镜像

二、 规划集群

1. 规划一个集群使用的子网

  1. docker network create kafka --subnet 172.18.0.0/16 #创建一个用于kafka集群的网桥
  2. docker network ls 查看docker的网络
  3. docker network inspect kafka 查看网络网桥详情

 2. 规划zk和kafka的IP地址

hostnameip addrportlistener
zk1172.18.10.112182:2181
zk2172.18.10.122183:2181
zk3172.18.10.132184:2181
kafka1172.18.10.14内部9092:9092,外部9192:9192kafka1
kafka2172.18.10.15内部9093:9093,外部9193:9193kafka2
kafka3172.18.10.16内部9094:9094,外部9194:9194kafka3

三、创建zookeeper集群

1. 创建zk.yaml文件

  1. version: '3.4'
  2. services:
  3. zk1:
  4. image: zookeeper
  5. restart: always
  6. hostname: zk1
  7. container_name: zk1
  8. ports:
  9. - 2182:2181
  10. - 8081:8080
  11. environment:
  12. ZOO_MY_ID: 1
  13. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  14. networks:
  15. kafka:
  16. ipv4_address: 172.18.10.11
  17. zk2:
  18. image: zookeeper
  19. restart: always
  20. hostname: zk2
  21. container_name: zk2
  22. ports:
  23. - 2183:2181
  24. - 8082:8080
  25. environment:
  26. ZOO_MY_ID: 2
  27. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  28. networks:
  29. kafka:
  30. ipv4_address: 172.18.10.12
  31. zk3:
  32. image: zookeeper
  33. restart: always
  34. hostname: zk3
  35. container_name: zk3
  36. ports:
  37. - 2184:2181
  38. - 8083:8080
  39. environment:
  40. ZOO_MY_ID: 3
  41. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  42. networks:
  43. kafka:
  44. ipv4_address: 172.18.10.13
  45. networks:
  46. kafka:
  47. external:
  48. name: kafka
  1. docker-compose -f zk.yml up -d #创建zk集群
  2. docker ps -a 查看创建的容器

检查zk集群是否创建成功

四、创建Kafka集群

1.创建kafka.yml文件

  1. version: '3.4'
  2. services:
  3. zk1:
  4. image: zookeeper
  5. restart: always
  6. hostname: zk1
  7. container_name: zk1
  8. ports:
  9. - 2182:2181
  10. - 8081:8080
  11. environment:
  12. ZOO_MY_ID: 1
  13. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  14. networks:
  15. kafka:
  16. ipv4_address: 172.18.10.11
  17. zk2:
  18. image: zookeeper
  19. restart: always
  20. hostname: zk2
  21. container_name: zk2
  22. ports:
  23. - 2183:2181
  24. - 8082:8080
  25. environment:
  26. ZOO_MY_ID: 2
  27. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  28. networks:
  29. kafka:
  30. ipv4_address: 172.18.10.12
  31. zk3:
  32. image: zookeeper
  33. restart: always
  34. hostname: zk3
  35. container_name: zk3
  36. ports:
  37. - 2184:2181
  38. - 8083:8080
  39. environment:
  40. ZOO_MY_ID: 3
  41. ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
  42. networks:
  43. kafka:
  44. ipv4_address: 172.18.10.13
  45. networks:
  46. kafka:
  47. external:
  48. name: kafka

检查kafka集群是否均注册到zk上

  1. docker exec -it 0aff4c8b6034 /bin/bash #进入到其中一台zk容器
  2. cd bin #进入到zookeeper的bin目录
  3. ./zkCli.sh -server 127.0.0.1:2181 #进入zk的客户端
  4. ls /brokers/ids #查看节点是否存在
  5. get /brokers/ids/1 #查询节点信息

五、测试kafka是否正常

  1. docker ps -a #查询容器列表
  2. docker exec -it 8aafb38249f8 /bin/bash #进入其中的一个kafka节点
  3. cd /opt/kafka_2.13-2.8.1/bin #切换到kafka的bin目录
  4. kafka-topics.sh --create --zookeeper zk2:2181 --replication-factor 2 --partitions 2 --topic partopic #创建topic
  5. kafka-topics.sh --describe --zookeeper zk1:2181 --topic partopic #检查topic是否创建成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/826049
推荐阅读
相关标签
  

闽ICP备14008679号