Zookeeper入门学习(一)--Zookeeper的特点

来源:互联网 发布:南通java培训班 编辑:程序博客网 时间:2024/06/03 11:17

一、Zookeeper的特点

1、开放源代码
2、分布式的协调服务,可以解决分布式数据一致性问题:
  • (1) 顺序一致性
  • (2) 原子性
  • (3) 单一视图
  • (4) 可靠性
  • (5) 实时性
3、高性能

二、Zookeeper应用场景(包含但不限于下列场景)

1、数据发布/订阅
zk采用了推模式和拉模式相结合的方式
2、负载均衡
  • (1)首先DB在启动时,将自己在zk上注册成一个临时节点(zk包含临时节点和永久节点两种,临时节点在服务器出现问题的时候,节点会自动从zk上删除,能够保证zk上的服务器列表是最新的可用列表)
  • (2)客户端在需要读写数据的时候去zookeeper上得到所有可用的DB的链接信息
  • (3)客户端随机选择一个DB与之建立连接
  • (4)当客户端发现连接不可用时可以再次从zk上获取可用的DB连接信息,也可以从之前获得的列表中删除这个不可用的连接后再随机选择一个DB与之连接
3、命名服务
传统命名有两种,第一种是数据库表的自增长ID,但是不可用于分布式系统,第二种则是UUID,可以用于分布式系统,但是没有规则,不利于理解。zk可以生成一个用于分布式环境下的顺序增长且便于理解的ID
4、分布式协调\通知
心跳检测,在zk中我们可以将所有机器都注册成一个临时节点(根据临时节点的特点),当需要判断一个机器是否可用时,只需要判断这个节点在zk中是否存在即可,从而降低了系统的复杂度

三、Zookeeper的基本概念

1、集群角色
  • Leader服务器是整个zookeeper集群工作机制中的核心
  • Follower服务器是zookeeper集群状态的跟随者
  • Observer 服务器充当一个观察者的角色
2、会话
客户端与zookeeper服务器的连接,zookeeper中的会话叫session。客户端在启动的时候会与服务器建立一个TCP的长连接来维持一个Session,通过这个连接,客户端能够通过心跳检测与服务器保存有效的会话,也能像zk服务器发送请求并获得响应。
3、数据节点
  • (1)集群中的一台机器称为一个节点
  • (2)数据模型中的数据单元Znode,分为持久节点和临时节点

    zookeeper的数据模型是一棵树,其中树的节点就是Znode,Znode中可以保存信息

4、版本
用来记录节点数据或节点或子节点列表或权限信息的修改次数
  • (1) version : 当前数据节点内容的版本号
  • (2) cversion : 当前数据节点子节点的版本号
  • (3) aversion : 当前数据节点ACL变更版本号
5、watcher
Zookeeper允许用户在指定节点上注册一些watcher,当数据节点发生变化的时候,zookeeper服务器会把这个变化的通知发送给感兴趣的客户端
6、ACL(Access Control Lists)权限控制

ZooKeeper采用ACL策略来进行权限控制,有如下权限:

  • (1)CREATE : 创建子节点的权限
  • (2)READ : 获取节点数据和节点列表的权限
  • (3)WRITE : 更新节点数据的权限
  • (4)DELETE : 删除子节点的权限
  • (5)ADMIN : 设置节点ACL的权限
0 0
原创粉丝点击