zookeeper学习
一、官网:https://zookeeper.apache.org/
二、定义:分布式应用程序的分布式协调服务(提供一个看起来像是单机,实际上不是单机的服务;比如分布式锁)
三、设计目标
- 简单:性能要求、严格的顺序(适合同步原语-分布式锁)
 - 复制:主从模式
-   
![]()
 - 
从上可以看出这是一个主从模式,且路由在服务端(zk 节点互相熟悉)
 - 
主从模式就会存在主节点的单点故障,zk通过保证快速选举leader来保证高可用性(选举一般保证在200ms之内完成,大多数节点同意即可)
 
 -   
 - 订阅:唯一的一个事务ID标记每次修改
 - 快:适用于读取场景,比例大概是1:10(写:读),性能极佳
 
四、数据结构-分层文件系统

五、节点&短暂节点
- znode单独维护自己的数据和一些统计数据信息
 - 每个节点都维护了ACL,控制目录下权限
 
六、更新和监视
客户端可以设置节点的监听
七、特性
- 顺序一致性-来自客户端的更新将按照发送的顺序应用。
 - 原子性-更新成功或失败。没有部分结果。
 - 单个系统映像-无论客户端连接到哪个服务器,客户端都将看到相同的服务视图。也就是说,即使客户端故障转移到具有相同会话的其他服务器,客户端也永远不会看到系统的较旧视图。
 - 可靠性-应用更新后,此更新将一直持续到客户端覆盖更新为止。
 - 及时性-确保系统的客户视图在特定时间范围内是最新的。
 
八、API(有很多都提供了-w参数,表示监听模式,偏响应式API)
- 
create:在树中的某个位置创建一个节点
 - 
delete:删除节点
 - 
exists:测试某个位置是否存在节点
 - 
get data:从节点读取数据
 - 
set data:将数据写入节点
 - 
get children节点:获取节点子节点的列表
 - 
sync:等待数据传播
 
                    
                

                
            
        
浙公网安备 33010602011771号