zookeeper 基础知识

一、ZooKeeper 基础知识

1 、zookeeper 环境搭建

有5台Server搭建一个zookeeper集群,这5台机器根据选举算法,选出一个leader节点,这个leader节点与其他4台Server相互通信,是长连接,当这4台Server有改动时,先将改动同步到leader节点,然后再由leader将改动同步到每一个Server。搭建好zookeeper后,就可以与Client连接,除了leader节点,其余的Server都可以与Client保持长连接。但leader挂掉时,zookeeper会重新选出一个leader。

2、zookeeper 协同 

zookeeper 维护一个类似文件系统的数据结构,每一个目录称为znode,可以像文件系统一样,增加、删除znode,znode是可以存储数据的。

znode分为下面4种类型

(1)  持久化节点 : 当客户端创建一个持久化节点时,不论客户端是否保持连接,节点都存在

(2)  持久化并顺序编号 : 当多个节点想要创建一个目录时,会自动按顺序进行编号。

(3)  临时节点 :客户端断开连接,节点数据删除

(4)  临时并顺序编号 :客户端断开连接,节点数据删除 ,编号方式与持久化顺利编号相同。

3、通知机制

客户端注册监听它关心的目录节点,当目录节点发生变化时,zookeeper会通知客户端。

4、zookeeper的作用

1: 发布和订阅 : 将数据发布到zk节点上,让订阅者动态获取数据。

可以做服务器的配置管理,服务器的启动需要数据库和zk相关的信息,服务器通常会配置一些数据库和相关应该的一些信息。可以将配置发布到zk上,当服务器启动时,动态的获取配置。

2:发布通知/协调 :

3: 分布式锁 : 当所有的节点都尝试创建某一个目录时,只要一个节点可以创建成功。利用这个特性,所有服务器在需要锁的时候,就去创建一个既有的目录,只要创建成功的服务器才能获取锁。

4: 集群管理 :当一个应用启动时,会创建一个临时目录,当应用下次时,临时目录也将会移除

5: 分布式队列 : 

二、 Zookeeper 注册和发现服务

1 : 使用Zookeeper来存放服务器列表 

2 : 使用Zookeeper的watch来及时更新服务器信息

3 :  Zookeeper高性能的读,稳定的写

三、 负载均衡

1: Zookeeper 存取服务的多个提供者的信息

2: Zookeeper 的通知机制 + 本地缓存

本地缓存: 当没有接到变化的通知时,就取本地的缓存

3: 应用仅需配置一个Zookeeper的地址

猜你喜欢

转载自kayak2015.iteye.com/blog/2297018
今日推荐