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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
13天前
|
Java Shell Linux
Zookeeper单机&集群安装
Zookeeper单机&集群安装
25 1
|
13天前
|
Docker 容器
在docker中安装zookeeper,并且阿里云服务器配置
在docker中安装zookeeper,并且阿里云服务器配置
213 1
|
13天前
|
Linux
ZooKeeper的安装(Linux版)
ZooKeeper的安装(Linux版)
43 1
|
13天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
26 0
|
13天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
44 1
|
13天前
|
存储 Linux 数据库
ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
【4月更文挑战第8天】ZooKeeper【搭建 01】apache-zookeeper-3.6.2 单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置(一篇入门zookeeper)
41 0
|
13天前
|
消息中间件 存储 Kafka
Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
【2月更文挑战第19天】Kafka【环境搭建 02】kafka_2.11-2.4.1 基于 zookeeper 搭建高可用伪集群(一台服务器实现三个节点的 Kafka 集群)
149 1
|
13天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
303 2
|
13天前
|
监控 Dubbo 前端开发
快速入门分布式系统与Dubbo+zookeeper Demo
快速入门分布式系统与Dubbo+zookeeper Demo
207 0
|
13天前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
274 0