第十四篇:Zookeeper的概述
1. 什么是Zookeepr
ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务。
1.它首先提供了分布式锁服务,由于ZooKeeper是开源的,后来者在分布式锁的基础上又提供了配置维护、组服务、分布式消息队列、分布
式通知/协调等。
2.它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
2. Zookeeper 的特点
1.最终一致性
客户端无论连接到哪个Server,展示给它的都是同一个视图,这是Zookeeper最重要的性能。
2.可靠性
具有简单、健壮、良好的性能,如果消息message被一台服务器接受,那么它将被所有的服务器接受。
3.实时性
Zookeeper保证客户端将在一个时间间隔范围内,获得服务器的更新信息或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
4.等待无关(wait-free)
慢的或者失效的Client不得干预快速的Client的请求,这就使得每个Client都能有效的等待。
5.原子性
更新操作要么成功,要么失败,没有中间状态。
6.顺序性
对于所有Server,同一消息发布顺序一致。它包括全局有序和偏序两种。
(1):全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布。
(2):偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。