Zookeeper教程
1.1 zookeeper简介
ZooKeeper是一个开源分布式协调服务,独特的Leader-Follower的集群结构,很好的解决了分布式单点问题。目前主要用于诸如:统一命名服务、配置管理、锁服务、集群管理等场景。
1.2 基本概念
Zookeeper中的角色主要有以下三类,如下表所示:
系统模型如图所示:
1.3 设计目的
1、最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。
2、可靠性:具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。
3、实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
4、等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
5、原子性:更新只能成功或者失败,没有中间状态。
6、顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。
2相关下载
2.1Java环境
ZooKeeper使用Java语言编写,因此它的运行需要Java环境的支持,可以下载1.6或以上的