当前位置:   article > 正文

Docker下的zookeeper集群_28883端口

28883端口

        在之前的文章中,我们已经完成了zookeeper镜像的拉取,并且成功创建了单结点的zookeeper的kafka,storm集群,那么在本篇文章中我将介绍通过Docker搭建zookeeper集群,那么为什么使用zookeeper集群呢,我们之前用单结点来部署不是也能够成功吗?

        单节点的ZooKeeper是指只有一个ZooKeeper服务器在运行的情况。它的优点是部署简单,占用较少的资源。对于小规模应用或测试环境,单节点的ZooKeeper可以满足需求。

        然而,单节点的ZooKeeper也存在一些缺点。首先,是单点故障的问题。如果单节点的ZooKeeper服务器宕机,整个系统将无法继续正常运行。其次,单节点无法提供高可用性和容错性。当负载增加或者需要更高的可用性时,单节点的ZooKeeper无法满足需求。此外,单节点的ZooKeeper无法进行水平扩展,无法处理大规模的并发请求。

        相比之下,ZooKeeper集群是由多个ZooKeeper服务器组成的。每个服务器之间相互协作,共同提供服务。集群的优点是可以提供更高的可用性和容错性。当集群中的某个节点宕机时,其他节点可以继续处理请求,系统依然可用。此外,集群可以分摊负载,提高并发性能。如果需要处理大规模的并发请求或者确保高可用性,可以选择ZooKeeper集群。

        然而,ZooKeeper集群也存在一些缺点。首先,部署和管理集群相对复杂,需要配置和维护多个服务器。其次,集群的资源消耗较大,需要更多的硬件资源。此外,需要通过一些额外的工具来管理和监控集群状态。

搭建zookeeper集群

        下面我来通过使用docker-compose文件来搭建一个由3个zookeeper结点组成的zookeeper集群:

  1. version: '2'
  2. services:
  3. zookeeper1: # 定义名为zookeeper1的服务
  4. image: 'bitnami/zookeeper:3.5.9' # 使用bitnami/zookeeper:3.5.9镜像
  5. container_name: zookeeper1
  6. ports: # 宿主机端口:容器端口 映射
  7. - '2181:2181' # 映射宿主机端口2181到容器端口2181
  8. - '2888:2888' # 映射宿主机端口2888到容器端口2888
  9. - '3888:3888' # 映射宿主机端口3888到容器端口3888
  10. environment: # 设置环境变量
  11. - ZOO_SERVER_ID=1 # 指定Zookeeper服务器ID为1
  12. - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper2:2888:3888,zookeeper3:2888:3888 # 设置Zookeeper集群连接信息
  13. - ALLOW_ANONYMOUS_LOGIN=yes # 允许匿名登录
  14. zookeeper2: # 定义名为zookeeper2的服务
  15. image: 'bitnami/zookeeper:3.5.9' # 使用bitnami/zookeeper:3.5.9镜像
  16. container_name: zookeeper2
  17. ports: # 宿主机端口:容器端口 映射
  18. - '21812:2181' # 映射宿主机端口21812到容器端口2181
  19. - '28882:2888' # 映射宿主机端口28882到容器端口2888
  20. - '38882:3888' # 映射宿主机端口38882到容器端口3888
  21. environment: # 设置环境变量
  22. - ZOO_SERVER_ID=2 # 指定Zookeeper服务器ID为2
  23. - ZOO_SERVERS=zookeeper1:2888:3888,0.0.0.0:2888:3888,zookeeper3:2888:3888 # 设置Zookeeper集群连接信息
  24. - ALLOW_ANONYMOUS_LOGIN=yes # 允许匿名登录
  25. zookeeper3: # 定义名为zookeeper3的服务
  26. image: 'bitnami/zookeeper:3.5.9' # 使用bitnami/zookeeper:3.5.9镜像
  27. container_name: zookeeper3
  28. ports: # 宿主机端口:容器端口 映射
  29. - '21813:2181' # 映射宿主机端口21813到容器端口2181
  30. - '28883:2888' # 映射宿主机端口28883到容器端口2888
  31. - '38883:3888' # 映射宿主机端口38883到容器端口3888
  32. environment: # 设置环境变量
  33. - ZOO_SERVER_ID=3 # 指定Zookeeper服务器ID为3
  34. - ZOO_SERVERS=zookeeper1:2888:3888,zookeeper2:2888:3888,0.0.0.0:2888:3888 # 设置Zookeeper集群连接信息
  35. - ALLOW_ANONYMOUS_LOGIN=yes # 允许匿名登录

        如果没有拉取zookeeper镜像可以去我之前的文章Docker下拉取zookeeper镜像拉取。拉取了zookeeper镜像之后,在docker-compose文件目录位置启动集群:

docker-compose up

        当然也可以通过命令查看集群状态:

docker ps

        那么这样我们就将集群搭建完毕了。

创建znode

        下面我们通过创建znode来判断集群的zookeeper节点之间是否连接成功。首先通过docker连接到其中某个zookeeper节点的命令行中:

docker exec -it <zookeeper容器名> zkCli.sh

        可以看到成功连接到了zookeeper集群中的某个节点,之后在这个节点中添加一个znode:

create <znode的路径> <znode中的数据>

        之后连接一个新的zookeeper节点,并通过命令查看在前一个节点中创建的znode是否存在:

ls <要列出子节点的znode路径>

 

        可以找到,说明集群的zookeeper节点连接成功。

至此,我们完成了Docker下zookeeper集群的搭建。


上一篇:Docker下的Flink

下一篇:Docker下的HBase

点击获得全部Docker大数据专栏文章

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

闽ICP备14008679号