Zookeeper知识点总结

部署:集群部署 至少三台服务器(安装奇数台),保持一半以上节点存活。

生产经验:
10 台服务器:3 台 zk;
20 台服务器:5 台 zk;
100 台服务器:11 台 zk;
200 台服务器:11 台 zk
服务器台数多:好处,提高可靠性;坏处:提高通信延时

1.Zookeeper 概念

官网
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目

数据结构

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个
节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过
其路径唯一标识。

 

 应用场景

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

 统一命名服务

 

 统一配置管理

 

 统一集群管理

 

 服务器动态上下线

 

 软负载均衡

 

 

2.Zookeeper 角色

Zookeeper 集群是一个基于主从复制的高可用集群,每个服务器承担如下三种角色中的一种

Leader

1:
一个 Zookeeper 集群同一时间只会有一个实际工作的 Leader,它会发起并维护与各 Follwer
及 Observer 间的心跳。

2:
所有的写操作必须要通过 Leader 完成再由 Leader 将写操作广播给其它服务器。只要有超过
半数节点(不包括 observeer 节点)写入成功,该写请求就会被提交(类 2PC 协议)。

Follower

  1. 一个 Zookeeper 集群可能同时存在多个 Follower,它会响应 Leader 的心跳,
  2. Follower 可直接处理并返回客户端的读请求,同时会将写请求转发给 Leader 处理,
  3. 并且负责在 Leader 处理写请求时对请求进行投票。

Observer

角色与 Follower 类似,但是无投票权。Zookeeper 需保证高可用和强一致性,为了支持更多的客
户端,需要增加更多 Server;Server 增多,投票阶段延迟增大,影响性能;引入 Observer,
Observer 不参与投票; Observers 接受客户端的连接,并将写请求转发给 leader 节点; 加入更
多 Observer 节点,提高伸缩性,同时不影响吞吐率。

 

3.投票机制

 

 

 非第一次启动

 

 

 

4.监听器原理

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目
录节点增加删除)时,ZooKeeper 会通知客户端。监听机制保证 ZooKeeper 保存的任何的数
据的任何改变都能快速的响应到监听了该节点的应用程序。

 

 

5.写数据流程

 

posted @ 2019-07-31 15:55  GJH-  阅读(140)  评论(0)    收藏  举报