《从Paxos到Zookeeper》读书笔记,Watcher 监听机制是 Zookeeper 中非常重要的特性,许多 Zookeeper 的使用场景其实都建立在 Watcher 机制之上,例如:分布式锁、配置管理、发布/订阅、命名服务
Watcher 介绍基于 Zookeeper上创建的节点,可以对这些节点绑定监听事件,比如可以监听节点数据变更、节点删除、子节点状态变更等事件。它类似于订阅的方式,即客户端向服务端注册指定的 watcher ,当服务端符合了 watcher 的某些事件或要求则会向客户端发送事件通知,客户端收到通知后找到自己定义的 Watcher 然后 执行相应的回调方法。
ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:
客户端注册 Watcher
服务器处理 Watcher
客户端回调 Watcher
Watcher 事件同一个事件类型在不同的通知状态中代表的含义有所不同,下表列举了常见的通知状态和事件类型。
核心流程客户端注册 Watcher由两种方式注册 Watcher
创建 ZooKeeper 客户端实例时,传递 ...
《从Paxos到Zookeeper》读书笔记
从集中式到分布式集中式系统指的是由一台或多台主计算机组成的系统,所有数据集中存储,系统功能由中心节点处理。其主要特点是:
部署结构简单:无需多个节点协作,依赖主机的卓越性能。
分布式系统是指硬件或软件组件分布在不同的网络计算机上,通过消息传递进行通信和协调。分布式系统的特点包括:
分布性:计算机可以随意分布在不同空间。
对等性:没有主从之分,所有节点平等。
并发性:多个节点可能并发操作共享资源,挑战较大。
缺乏全局时钟:没有全局时序,事件顺序难以定义。
故障不可避免:节点可能发生各种故障。
同时分布式系统面临许多挑战:
通信异常:网络不可靠,延时远高于单机操作。
网络分区:部分节点无法通信,导致“脑裂”现象,挑战一致性。
三态问题:分布式请求可能会有成功、失败或超时的结果,增加了不确定性。
节点故障:服务器节点宕机或“僵死”是常见问题
从ACID到CAP/BASE事务 指的是对系统中数据的一系列操作集合,详见 事务 这一文所述。
事务具有四个特征,俗称为 ACID :
原子性(Atomicity)
一致性(Con ...