1、Zookeeper架构图

一、Zookeeper架构图

在这里插入图片描述

图的链接

二、要素说明

  1. 色块1:zk集群中的follower服务节点,物理体现为一个java进程
  2. 色块2:zk集群中的leader服务节点,物理体现为一个java进程
  3. 色块3:连接zk服务的客户端,物理体现为一个进程
  4. 色块4:保存在zk服务进程中java堆内存的 数据
  5. 色块5:写操作日志,物理体现为一个文件
  6. 色块6:保存zk服务进程中数据的一个快照文件,在zk服务进程重启时通过读取这个文件还原之前的内存数据

三、要素之间关系说明

zk server 与客户端关系

  1. zk server 包括follower,leader,observer角色的server
  2. 客户端与zk server 之间使用NIO进行连接,zk server之间使用BIO进行连接
  3. 一个客户端只能连接一个zk server
  4. 客户重新连接另外一个zk server时 会注册原来的watch事件到新连接的zk server
  5. 每台机器只能跟zk server 建立60(数量可配置)个连接,如果超过了会被拒绝
  6. zk server默认的2181端口是用于客户端连接的端口,另外两个端口是用于数据同步与leader选举,那说明 zk server 之间有两个BIO连接
  7. 所有类型的zk server 都可以执行读操作,只有leader角色的zk server 支持写操作
  8. follower 和 observer 接收到客户端的写操作,会把写操作请求转发给leader

zk server 内部

  1. 每个zk server内部实现了预写日志系统(WAL)
  2. 当有数据写入时,先把数据写入到操作日志(上图色块5)里
  3. 然后把数据写入内存中(上图色块4)
  4. 定时把内存数据 保存到快照文件中(上图色块6)
  5. zk server重启时,先读取快照数据恢复内存数据,再从日志中恢复未被保存到快照文件的数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值