目录
2021SC@SDUSC
一、zookeeper综述
1.zookeeper是什么
zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。zookeeper代码版本中,提供了分布式独享锁、选举、队列的接口等等。
总之,zookeeper是一个分布式的文件管理系统,通过通知机制向客户端发送实时信息。
2.zookeeper的一些特性
1.全局数据的一致
每个server保存一份相同的数据副本,client无论链接到哪个server,展示的数据都是一致的。
2.可靠性
如果消息被其中一台服务器接受,那么将被所有的服务器接受。
3.顺序性
包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息 a 在消息 b 前发布,则在所有 server 上消息 a 在消息 b 前被发布,偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必须将排在 b 前面。
4.数据更新原子性
一次数据更新要么成功,要么失败,不存在中间状态。
5.实时性
ZooKeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。
3.zookeeper一些常见服务
1.命名服务
ZooKeeper 提供的命名服务功能能够帮助应用系统通过一个资源引用的方式来实现对资源的定位与使用。另外,广义上命名服务的资源定位都不是真正意义的实体资源——在分布式环境中,上层应用仅仅需要一个全局唯一的名字,类似于数据库中的唯一主键。
2.配置管理服务
建立一个配置管理中心,把配置文件交给zookeeper来管理,只需要在一个节点上修改配置文件,那么其他监听了该节点的服务全部自动更新最新的配置文件到本地。
3.集群管理服务
在zookeeper服务器端有一个znode,那么集群中每一个机器启动的时候都去这个节点下创建一个该类型的节点,那么在某一个机器挂掉或者断链的时候,其对应的节点就会消失,然后集群中所有对该节点进行watch的客户端都会收到通知,然后取得最新列表。
4.选举算法服务
选举一个节点作为协调目的的leader。
5.锁定和同步服务
在修改数据的同时锁定数据。此机制可帮助你在连接其他分布式应用程序时进行自动故障恢复。
二、组内分工
组员 | ZooKeeper源码解析分工 |
陈伊臻 | Znode、Watcher、ACL |
刘翔 | ZAB Protocol |
张磊 | ZAB Protocol |
萧科多 | Network Communications 、Session |
三、总结
本文只是对zookeeper的简单综述,后续将开始进行源码的学习与分析。