初识Zookeeper

Zookeeper为分布式应用提供高效且可靠的分布式协调服务,提供统一命名服务、配置管理和分布式锁等分布式基础服务。它没有直接使用Paxos算法,而是采用ZAB (Zookeeper Atomic Broadcast)的一致性协议。

4.1 初识Zookeeper

4.1.1 Zookeeper介绍

    是一个开放源码的分布式协调服务,分布式一致性的解决方案。是Google Chubby的开源实现。为了将复杂易错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供      给用户使用。

    分布式应用可以使用它实现如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。

    Zookeeper设计目标:

    • 简单数据模型 
    • 可构建集群
    • 顺序访问
    • 高性能 数据存储在内存

4.1.2 Zookeeper从何而来

   zoo  keeper 动物园管理员,雅虎很多项目名称以动物命名,放在一起很像动物园。

   Zookeeper用来分布式环境的协调工作。

4.1.3 Zookeeper的基本概念

    • 集群角色 
      Leader 、Follower、Observer三种角色,Zookeeper集群中所有机器通过一个Leader选举过程来选定一台Leader,它为所有客户端提供读和写服务。Follower和Observer都能提供读服务,唯一区别是Observer不能参与Leader选举,也不能参与写操作的“过半写成功”策略,Observer可以在不影响写性能的情况下提升集群读性能。
    • 会话
    • 数据节点(Znode)
      Zookeeper中,“节点”分为两类,第一类指构成集群的机器,称为机器节点;第二类指数据模型中的数据单元,称为数据节点---ZNode。所有数据存储在内存中,数据模型是一棵树(ZNode Tree),由斜杠(/)进行分割的路径,就是一个ZNode,例如/foo/path1。每个ZNode都会保存自己的数据,同时还有属性信息。
      ZNode分为持久节点和临时节点。持久节点被ZNode创建,除非主动进行ZNode移除操作,否则ZNode一直保存在Zookeeper上。临时节点的生命周期和客户端回话绑定,一旦客户端会话失效,那么这个客户端创建的所有临时节点都会被移除。
    • 版本
    • Watcher 
      事件监听器,允许用户在指定节点注册Watcher,触发是ZooKeeper服务端会将事件通知到客户端
    • ACL
      Access Control Lists 策略进行权限控制
posted @ 2019-07-13 15:02  vvf  阅读(161)  评论(0编辑  收藏  举报