Zookeeper——分布式协调服务

Zookeeper

Zookeeper是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现诸如数据订阅/发布、负载均衡、命名服务、集群管理、分布式锁和分布式队列等功能。

基本概念

①集群角色

​      Leader:所有机器通过选举产生,为客户端提供读/写服务;

​      Follower:提供服务,参与Leader选举;

​      Observer:提供服务,不参与Leader选举(写操作的过半写成功策略也不参与)

简单来说就是Observer角色作为投票的旁观者,看着其他角色进行选举产生Leader,作用为在不影响写性能的情况下提升集群性能。

②会话(session)

​      指的是客户端会话,一个客户端连接指的是客户端和服务端之间的一个TCP长连接,对外服务端口默认2181,客户端启动时,首先会与服务器建立一个TCP连接,自此,客户端的会话生命周期也开始了,通过这个连接,客户端能够心跳检测与服务器保持有效的会话,也能够向Zookeeper服务器发送请求并接受响应,同时还能够通过该连接接受来自服务器的Watch时间通知。

③数据节点(Znode)

     特指数据模型中的数据单元,Zookeeper将所有数据存储在内存中,数据模型是一棵树(ZNode Tree),由/进行分割的路径,就是一个ZNode,如/app/path1。每个ZNode上都会保存自己的数据内容,同时还会保存一系列属性信息。

④版本

     基于每个ZNode上都会存储数据,所以对于每个ZNode,Zookeeper都会为其维护一个叫做Stat的数据结构,Stat记录了这个ZNode的三个数据版本,分别是version(当前ZNode版本)、cversion(当前ZNode子节点的版本)、aversion(当前ZNode的ACL版本).

⑤Watcher(事件监听器)

     Zookeeper允许用户在指定节点上注册一些Watcher,并且在一些特定事件触发的时候,Zookeeper服务端会将时间通知到感兴趣的客户端,该机制是Zookeeper实现分布式协调服务的重要特性

⑥ACL

     Zookeeper采用ACL(Access Control List)策略来进行权限控制,有以下5种权限:

          ※CREATE:创建节点

          ※READ:获取节点数据和子节点列表

          ※WRITE:更新节点数据

          ※DELETE:删除子节点

          ※ADMIN:设置节点的ACL权限

     其中CREATEDELETE是针对子节点的权限控制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值