ZooKeeper概述
ZooKeeper是什么
- zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现,是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。
- 提供了基于类似Unix系统的目录节点树方式的数据存储。
- 可用于维护和监控存储的数据的状态的变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理
- 提供了一组原语(机器指令),提供了java和c语言的接口
Zookeeper的特点
- 也是一个分布式集群,一个领导者(leader),多个跟随者(follower).
- 集群中只要有半数以上的节点存活,Zookeeper集群就能正常服务。
- 全局数据一致性:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。
- 更新请求按顺序进行:来自同一个client的更新请求按其发送顺序依次执行
- 数据更新的原子性:一次数据的更新要么成功,要么失败
- 数据的实时性:在一定时间范围内,client能读到最新数据。
Zookeeper的数据模型
Zookeeper的数据模型采用的与Unix文件系统类似的层次化的树形结构。我们可以将其理解为一个具有高可用特征的文件系统。这个文件系统中没有文件和目录,而是统一使用"节点"(node)的概念,称之为znode。znode既可以作为保存数据的容器(如同文件),也可以作为保存其他znode的容器(如同目录)。所有的znode构成了一个层次化的命名空间。
znode
- Zookeeper被设计用来实现协调服务,这类服务通常使用小数据文件,而不是用于大容量数据存储,因此一个znode能存储的数据被限制在1MB以内,
- 每个znode都可以通过其路径唯一标识。
Zookeeper的应用场景
- 统一配置管理
- 统一集群管理
- 服务器节点动态上下线感知
- 软负载均衡等
- 分布式锁
- 分布式队列
4.1.5. zookeeper的作用
负责提供阶段的监听注册作用
负责接收用户的心跳,进行通信,感知用户的状态
负责为用户提供注册,查找信息
负责负载均衡
注意:
如果现在再新增一个服务器,要先完成在zookeeper中的注册,这时我就知道可以有一个新的服务器可用,分配任务时进行较平均分配(负载均衡)
zookeeper可以单机版,但是他的压力也很大,所以一般zookeeper也是一个分布式的
更多大数据精彩内容欢迎B站搜索“千锋教育”或者扫码领取大数据学习全套资料!