如何从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

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参