入门Zookeeper(一)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 入门Zookeeper(一)

一、Zookeeper简介


ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。


1. Zookeeper的工作机制


如图所示,服务器上线时,会将服务器的信息注册到Zookeeper中,客户端会从Zookeeper获取服务器信息列表,进行注册监听,当服务器节点下线或异常时,会通知Zookeeper,Zookeeper进而通知客户端。简单来说,Zookeeper就相当于一个文件系统(存储管理元数据信息)+通知机制。


6a1483e9a1b44758b5054f56c38d0a00.png


从设计模式角度来理解,Zookeeper是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理数据信息,并接受观察者的注册,一旦数据信息发生变化,Zookeeper就负责通知已经注册的这些观察者,让观察者们作出相关的反映。


2. Zookeeper的特点


6a44e360863b418495e265959d7b7e4e.png


  • Zookeeper是由一个Leader和多个Follower组成的集群
  • 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务,所以Zookeeper适合安装基数台服务器
  • 全局数据一致:每个Server保存一份相同的数据副本
  • 更新请求顺序执行,来自同一个Client的更新请求按照其发送顺序依次执行(先来的请求先处理)
  • 数据更新原子性,一次数据更新要么成功,要么失败
  • 实时性,在一定时间范围内,Client能读到最新的数据


3. Zookeeper的数据结构


Zookeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,Zookeeper 名称空间中的每个节点都是由一个路径标识。其与Linux文件系统类似,整体上可以看作一棵树,每个节点称为一个ZNode,每个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。


1aa66b246cbc4281a9405c049e9f9da7.png


4. Zookeeper应用场景


1、统一命名服务


在分布式环境下,经常需要对应用/服务统一命名,便于识别


2、统一配置管理


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


一般要求一个集群中,所有节点的配置信息是一致的

对配置文件修改后,希望可以快速同步到各个节点上


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


可以将配置信息写入到Zookeeper的一个ZNode

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

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


3、统一集群管理


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

  • 可以根据节点实时状态做出一些调整

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

  • 可以将节点信息写入到Zookeeper上的一个ZNode
  • 监听这个ZNode可以获取它的实时状态变化


4、服务器动态上下线


客户端能实时洞察到服务上下线的情况


5、软负载均衡


在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求


二、Zookeeper的安装与配置参数


Zookeeper可以进行单机安装和集群安装,具体的安装教程就在此省略咯。另外看看Zookeeper的配置文件参数说明:


image.pngimage.pngimage.pngimage.pngimage.png

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
存储 消息中间件 负载均衡
Zookeeper基础入门与安装部署
Zookeeper基础入门与安装部署
86 0
|
6月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
163 2
|
6月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
163 0
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
219 0
|
6月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
339 0
|
6月前
|
Dubbo Java 应用服务中间件
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
177 1
|
6月前
|
存储 Shell Linux
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
535 0
|
存储
zookeeper入门(二)
接触zookeeper也有一段时间了,一直有一个问题困扰着我,那就是zookeeper在codis中扮演什么角色,zookeeper中到底存储了哪些数据。
57 0
|
存储 消息中间件 设计模式
zookeeper入门(一)
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目
125 0
zookeeper入门到精通08——服务器节点动态上下线案例实战
zookeeper入门到精通08——服务器节点动态上下线案例实战