zookeeper 集群架构解析

1.ZooKeeper总体架构

zk 客户端库使用 zk服务。 zk客户端负责和 zk集群的交互。

zk集群可以有两种模式:standalone(有一个独立运行的znode) 模式和 quorum (多个znode)模式。

zookeeper 集群架构解析_第1张图片

2.Session

zk客户端库和 zk集群中的节点创建一个 session。客户端可主动关闭 session。如果 zk节点没有在 session 关联的 timeout 时间内收到客户端的数据的话, zk节点也会关闭session 。另外 zk客户端库如果发现连接的 zk出错,会自动的和其他 zk节点建立连接。

zookeeper 集群架构解析_第2张图片

3.Quorum模式

Quorum模式的集群包含多个 zk节点。 如:下图的 ZooKeeper 集群有 3 个节 点,其中节点 1 是 leader 节点,节点 2 和节点 3 是 follower 节点。 leader 节点可以处理读写请求, follower 只可以处理读请求。 follower 在接到写请求时会把写请求转发给leader来处理。

zookeeper 集群架构解析_第3张图片

quorum模式的数据一致性

• 可线性化(Linearizable)写入:先到达 leader 的写请求会被先处理,leader 决定写请求 的执行顺序。

• 客户端 FIFO 顺序:来自给定客户端的请求按照发送顺序执行。

☆☆☆本篇文章图片来源于极客学院的视频学习讲解。

你可能感兴趣的:(zookeeper)