Zookeeper基础

一、zookeeper简介

1.1zookeeper简介

zookeeper是一个高效的分布式协调系统,它暴露一些公共服务,比如命名/配置管理/同步控制/群组服务等等。我们可以使用它来实现比如达成共识/集群管理/leader选举等。

zookeeper是一个高可用的分布式管理与协调框架,基于ZAB算法(原子消息广播协议)的实现。该框架能够更好的保证分布式环境中数据的一致性。也正是基于这样的特性,使得zookeeper成为了解决分布式一致性问题的利器。

顺序一致性:从一个客户端发起的事务请求,最终将会严格的按照其发起的顺序被应用到zookeeper中去。

原子性:所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群所有的机器都成功应用到了某一事物,要么都没有应用。不会出现部分机器应用了该事务,另一部分没有应用的情况。

单一视图:无论客户端连接的是哪一个zookeeper服务器,其看到的服务器端数据模型都是一致的。

可靠性:一旦服务器成功应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务器端状态j将会被一致的保留下来。除非有另外一个事务对其更改。

实时性:通常所说的实时性就是指一旦事务被成功的应用,那么客户端就能立刻从服务器上获取变更后的新数据,zookeeper仅仅能保证在一段时间内,k客户端最终一定能从服务器端读取最新的数据状态。

1.2zookeeper设计目标

目标1:简单的数据结构。以简单的树形结构来进行相互协调的(也叫树形名字空间)

目标2:可以构建集群。一般zookeeper集群通常是由一组机器g构成,一般3~5台机器就可以组成一个集群。只要集群中超过一半以上的机器能够正常工作,那么整个集群就能够正常对外提供服务了。

目标3:顺序访问。对于来自每一个客户端的每一个请求,zookeeper都会分配一个全局唯一的递增编号,这个编号反映了所有事务操作的先后顺序,应用程序k可以使用zookeeper这个特性来实现更高层次的同步。

目标4:高性能。由于zookeeper将全量数据存储在内存中,并直接服务于所有的非事务请求,因此尤其是在读操作为主的情况下性能非常突出。

1.3zookeeper结构

会维护一个具有层次关系的数据结构,类似于一个标准的文件系统。

1.4zookeeper数据模型

1.每个子目录项如NameService都被称作znode,这个znode是被他所在的路径唯一标识,如Server1这个znode的标识为/NameService/Server1

2.znode可以有子节点目录,并且每个znode可以存储数据,注意EPHEMERAL类型的目录节点不能拥有子节点目录

3.znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据

4.znode可以是临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode也将自动删除,zookeeper的客户端和服务器通信采用长连接方式,每个客户端和服务器端通过心跳来保持连接,这个连接状态称为session,如果znode是临时节点,这个session失效,znode也就删除了。

5.znode的目录名可以自动编号,如App1已经存在,再创建的话,将会自动命名为App2。

6.znode可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是zookeeper的核心特性。

1.5zookeeper组成

ZK Server根据其身份特性分为3种:leader,follower,observer,其中follower和observer又统称learner.

leader:负责客户端的write请求

follower:负责客户端的read请求,参与leader选举等

observer:特殊的“follower”,可以接受客户端的read请求,但不参与选举。

1.6应用场景

zookeeper是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据发生变化,zookeeper就负责通知已经在zookeepers上注册的那些观察者做出相应的反应,c从而实现集群中类似Master/Slave管理

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值