zookeeper是一个针对大型分布式系统的可靠协调系统。
1)它提供的功能包括:配置维护,名字服务,分布式同步,组服务等;
2)它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效,功能稳定的系统提供给用户;
特点:
1,最终一致性:为客户端展示同一试图
2,可靠性:如果一条消息被一台服务器接受,那么它将被所有的服务器接受。
3,实时性:zookeeper不能保证两个客户端同时得到刚刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
4,等待无关(wait-free):慢的或者失效的client不干预快速的client的请求。
5,原子性:更新操作要么成功,要么失败,没有中间状态。
6,顺序性:对于所有server,同一消息发布顺序一致。
基本原理
server很多,有主从之分,不过有一个leader,其他是follower,
每个server,在内存中存有一份数据,启动时,将选举出一个leader,根据poxos协议选举
leader负责处理数据更新操作,用到zab协议
一个更新操作成功的标志,大多数server在内存,成功修改数据(一个有5个,有3个写成功了)
本文转自 skinglzw 51CTO博客,原文链接:http://blog.51cto.com/skinglzw/1833186,如需转载请自行联系原作者