如何从0开始搭建一个3节点的ZooKeeper仲裁集群

2024-03-29 07:48

本文主要是介绍如何从0开始搭建一个3节点的ZooKeeper仲裁集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间戳:2021-04-08 22:00:46

  1. 场景:客户端与ZK集群交互图
    客户端与ZK集群交互图
    本文,将规划一个3节点的ZK集群。

  2. 软件安装
    本文使用了spack包管理器一键式安装zookeeper软件,命令为

spack install zookeeper

安装好的zookeeper目录结构如下
在这里插入图片描述
3. 配置文件
本集群3节点,需3个配置文件
在这里插入图片描述
如上图所示,分别定义了server.1, server.2, server.3三台服务器。

服务器从 $dataDir/myid 文件中得到自己的ID,在启动集群之前,先将各自的myid文件准备好
在这里插入图片描述
4. 启动集群
启动命令是

zkServer.sh start </path/to/zoo.cfg>

我将集群启动命令写在脚本里,如下图
在这里插入图片描述
执行./start_zk_quorums.sh脚本,将集群启动起来

  1. 检查集群的状态
    在这里插入图片描述

  2. 客户端连接

/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/zkCli.sh \
-server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183Connecting to 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
2021-04-08 21:55:59,402 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
2021-04-08 21:55:59,407 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=192.168.1.5
2021-04-08 21:55:59,407 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_281
2021-04-08 21:55:59,409 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2021-04-08 21:55:59,409 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
2021-04-08 21:55:59,409 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../build/classes:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../build/lib/*.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/slf4j-log4j12-1.6.1.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/slf4j-api-1.6.1.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/netty-3.10.5.Final.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/log4j-1.2.16.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/jline-0.9.94.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../lib/audience-annotations-0.5.0.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../zookeeper-3.4.11.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../src/java/lib/*.jar:/Users/ben/software/opensource/Spack/spack/opt/spack/darwin-bigsur-cannonlake/apple-clang-12.0.0/zookeeper-3.4.11-bedjbhw3v2t3jpgsbpxotsne6mhimssc/bin/../conf:
2021-04-08 21:55:59,409 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/Users/ben/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/var/folders/9d/x216k2yd6kjbqt67_svwpy940000gn/T/
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Mac OS X
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=x86_64
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=10.16
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=ben
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/Users/ben
2021-04-08 21:55:59,410 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/Users/ben/zkPractice
2021-04-08 21:55:59,412 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@27fa135a
Welcome to ZooKeeper!
2021-04-08 21:55:59,437 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@1035] - Opening socket connection to server 127.0.0.1/127.0.0.1:2182. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2021-04-08 21:55:59,450 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@877] - Socket connection established to 127.0.0.1/127.0.0.1:2182, initiating session
2021-04-08 21:55:59,458 [myid:] - INFO  [main-SendThread(127.0.0.1:2182):ClientCnxn$SendThread@1302] - Session establishment complete on server 127.0.0.1/127.0.0.1:2182, sessionid = 0x200026b38b80001, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 0] ls
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 1] ls /
[zookeeper]
[zk: 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183(CONNECTED) 2]
  1. 小结

ZooKeeper为分布式应用提供协调服务。让开发者更少关注分布式系统协调服务,将有限的精力投入到更有价值的业务的开发。

这篇关于如何从0开始搭建一个3节点的ZooKeeper仲裁集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/858022

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、