大数据-Zookeeper

Zookeeper 快速入门

1、Zookeeper的概念

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,多用作为集群提供服务的中间件

2、Zookeeper的工作机制

zookeeper从设计模式角度来理解,是一个基于观察者设计模式的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

3、Zookeeper的特点

大数据-Zookeeper
(1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群
(2)集群中只要半数以上的节点存活,Zookeeper集群就能正常服务
(3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
(4)数据更新原子性:一次数据更新要么成功,要么失败
(5)实时性:在一定的时间范围内,Client能读到的最新的数据
(6)更新请求顺序进行:来自同一个Client的更新请求按其发送的顺序依次执行

4、Zookeeper的应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

例子1:统一集群管理
大数据-Zookeeper
例子2:服务器动态上下线
大数据-Zookeeper
例子3:软负载均衡
大数据-Zookeeper
例子4:统一配置管理
大数据-Zookeeper

例子5:统一命名服务
大数据-Zookeeper

5、Zookeeper的常用命令

大数据-Zookeeper
1)查看当前znode中所包含的内容:ls /
2)查看当前节点详细数据:ls2 /
3)分别创建2个普通节点:
create /sanguo “jinlian”
created /sanguo
4)获得节点的值:get /sanguo
5)创建短暂节点:create -e /sanguo/wuguo “zhouyu”
6)创建带序号的节点:create -s /sanguo/weiguo/xiaoqiao “jinlian”
7)修改节点数据值:set /sanguo/weiguo “simayi”
8)节点的值变化监听:get /sanguo watch
9)节点的子节点变化监听(路径变化):ls /sanguo watch
10)删除节点:delete /sanguo/jin
11)递归删除节点:rmr /sanguo/shuguo
12)查看节点状态:stat /sanguo

6、Zookeeper的内部原理

6.1 选举机制

1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。
2)Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower。Leader是通过内部的选举机制临时产生的

6.2 监听器原理

大数据-Zookeeper

6.3 Zookeeper写数据流程

大数据-Zookeeper