Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(一)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(一)

1、Zookeeper入门

1.1 概述

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。

6c47cca4b7cc4a48a0d710b530eb2a13.png1、Zookeeper工作机制

Zookeeper从设置模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。


d12dfa9ae43b4294a55fbb5b197b5a40.png

1.2 特点


50f564c9aa8b45ab9867ce79e30c33c2.png

1、Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。

2、集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。

3、全局数据一致,每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。

4、更新请求顺序执行,来着同一个Client的更新请求按其发送顺序依次执行。

5、数据更新原子性,一次数据更新要么成功,要么失败。

6、实时性,在一定时间范围内,Client能读取到最新数据

1.3 数据结构

Zookeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能储存1MB的数据,每个ZNode都可以通过其路径唯一标识。


c609fb8dffd740d08fe47752eae0a4da.png

1.4 应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

1、统一命名服务

d1fa4ec48991411a97e75cc938ce2a5a.png

2、统一配置管理

d7b5d28cb0f14e3f8ba3243e7f17024f.png

(1)分布式环境系,配置文件同步非常常见

(a)一般要求一个集群中,所有节点的配置信息是一致的,比如kafka集群。

(b)对配置文件修改后,希望能够快速同步到各个节点上。

(2)配置管理可交由Zookeeper实现

(a)可将配置信息写入Zookeeper上的一个ZNode

(b)各个客户端服务器监听这个ZNode

(c)一旦ZNode中的数据被修改,Zookeeper将通知各个客户端服务器

3、统一集群管理

(1)分布式环境中,实时掌握每个节点的状态是必要的

(a)可根据节点实时状态做出一些调整

(2)Zookeeper可以实现实时监控节点状态变化

(a)可将节点信息写入Zookeeper上的一个ZNode节点

(b)监听这个ZNode可获取它的实时状态变化。

1fe6ed1d46b743e2acdbf0a1e681c26c.png


4、服务器动态上下线


3ae93ff33d854e088e591f178f98664b.png


5、软负载均衡


9a9f6e77a842419ebfb6f07ca835b3e4.png

2、Zookeeper本地安装

Zookeeper文件获取

链接:https://pan.baidu.com/s/1kVisN2YWXH119vX8mVa_uQ

提取码:zhm6

2.1 本地模式安装

1、安装前准备

(1)安装JDK

(2)拷贝Zookeeper安装包到Linux系统下

(3)解压到指定目录

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

2、配置修改

(1)将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg;

mv zoo_sample.cfg zoo.cfg

(2)打开 zoo.cfg 文件,修改 dataDir 路径

vim zoo.cfg

修改以下内容

dataDir=/opt/module/zookeeper-3.5.7/zkData

a4f6f5c13d194c818ea93c7976727115.png

(3)在/opt/module/zookeeper-3.5.7/这个目录上创建 zkData 文件夹

mkdir zkData

3、操作Zookeeper

(1)启动Zookeeper

bin/zkServer.sh start


6af0e05d64fc4e7fbaf075c7cb391937.png

(2)查看进程是否启动

jps

60565950d3f1457fac59d9fbc428d5cc.png

(3)查看状态

bin/zkServer.sh status

(4)启动客户端

bin/zkCli.sh

(5)退出客户端

quit

(6)停止 Zookeeper

bin/zkServer.sh stop

2.2 配置参数解读

1、tickTime = 2000;通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒


8088efd92ecd407ab8592981074f53be.png

2、initLimit=10:LF初始通信时限


466b8abc8aa3447797fb94f48ebf7b22.png

Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)

3、syncLimit=5:LF同步通信时限


7b35eeb87cfe423fac39c05fb98e638d.png

Leader和Follower之间通信时间如果超过syncLimit*tickTime,Leader认为Follower死掉,从服务器列表中删除掉Follower。

4、dataDir:保存Zookeeper中的数据

注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。

5、clientPort=2181:客户端连接端口,通常不做修改


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
30 1
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
67 1
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
43 1
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
45 1
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
50 1
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
3月前
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)
|
5月前
|
监控 NoSQL Java
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
45 2