Zookeeper概述

1、Zookeeper的概述

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的项目
关键字:分布式:多台服务器共同完成一件复杂的任务
在这里插入图片描述
在上面的图看出:Zookeeper像个铲屎官,为各种分布式框架(动物)提供服务的
下面简单了解一下Zookeeper的工作机制

Zookeeper工作机制

Zookeeper是基于观察者设计的分布式管理框架(一人在干活,一人在观察监督),是负责存储管理大家都关心的数据接收观察者的注册,一旦数据发生改变,Zookeeper负责通知在Zookeeper上注册
在这里插入图片描述
1)服务器把基本信息注册到Zookeeper上,创建节点
2)客户端获取在线的服务器列表,并注册监听
3)如果服务器下线,Zookeeper通知客户端客户端重新获取在线服务器列表,并监听
从上面的图明显感知zookeeper是一个文件系统通知机制的框架

2、Zookeeper的特点

在这里插入图片描述
1)Zookeeper:一个领导者(Leader),多个跟随者(follower)组成集群
2)集群中只要有超过半数以上节点存活,Zookeeper集群就可以正常服务,Zookeeper适合安装奇数台服务器
如果是偶数台,当等于半数时Zookeeper还是无法正常服务,而且还浪费资源
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致
4)更新请求顺序执行,来自同一个Client的更新请求按发送的顺序依次执行,类似于队列,先进先出
5)数据更新原子性:一次数据更新要么全部成功,要么全部失败
6)实时性:在一定时间范围内,Client能读到最新数据(server之间的数据同步快

3、数据结构

ZooKeeper数据模型的数据结构和linux的文件系统非常类似,类似一颗树的结构,每一个节点称作ZNode

zookeeper是如何保存数据的

zookeeper的数据是保存在节点上,节点就是znode,多个znode之间之间构成一个树的目录结构

zookeeper的znode包含了四部分:
  • data:保存数据
  • acl:权限,定义了什么样的用户能够操作这个节点,且能够进行怎么样的操作
    c:create创建权限,允许在该节点下创建子节点
    w:write读取权限,允许更新该节点的数据
    r:read读取权限,允许读取该节点的内容以及子节点的列表信息
    d:delete 删除权限,允许删除该节点的子节点
    a:admin管理者权限,允许对该节点进行acl权限设置
  • stat:描述当前节点znode的元数据
  • child:当前节点的子节点

在这里插入图片描述

4、应用场景

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

4.1、统一命名服务

在这里插入图片描述

4.2、统一配置管理

在这里插入图片描述
分布式环境下,配置文件同步很常见,一般集群中,配置文件是一直的,配置文件修改后,希望快速同步到各个节点上
配置管理交给zookeeper实现
1)将配置信息写入zookeeper上的一个Znode
2)各个客户端服务器监听这个Znode
3)一旦Znode中的数据被修改Zookeeper将通知各个客户端服务器

4.3、统一集群管理

在这里插入图片描述

4.4、服务器节点动态上下线

在这里插入图片描述

4.5、软负载均衡

在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器处理最新的客户端请求
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值