• zookeeper


    https://www.cnblogs.com/felixzh/p/5869212.html

    https://www.w3cschool.cn/zookeeper/zookeeper_overview.html

    一、zookeeper定义

    zookeeper是一个针对大型分布式系统的可靠协调系统。

    1.1 它的功能包括:配置维护,名字服务,分布式同步、组服务等。

    1.2 它的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    二、zookeeper的特点

    1、 最终一致性:为客户端展示同一视图。

    2、可靠性:如果一条消息被一台服务器接受,那么它将被所有服务器接受。

    3、实时性:zookeeper不能保证两个客户端同事得到刚刚更新的数据,如果需要更新数据,应该在读数据之前调用sync()接口。

    4、等待无关(wait-free):慢的或者失效的client不干预快速的client的请求。

    5、原子性:更新操作要么成功,要么失败,没有中间状态。

    6、顺序性:对于所有server,同一消息发布顺序一致。

    三、zookeeper角色

    四、leader选举

    1、leader选举采用paxos协议

    2、paxos核心思想是:当多数server写成功,那么数据则写入成功。

         如果有3个服务器,那么有两个写入成功,则数据写入成功。

         如果有4个或者5个服务器,有3个写成功,则数据写成功。

    3、server数量一般为奇数,如3、5、7等。

         如果有3个服务器,最多允许1个挂掉。

         如果有4个服务器,最多同样允许3个挂掉。

    4、zookeeper 的写入操作。

    五、zookeeper数据模型。

    1、zookeeper  提供一个层次化目录结构,命名规范符合常规linux文件目录命名规范。

    2、每个节点在zookeeper中叫做znode,并且有一个唯一的路径标识。

    3、znode有两种数据结构,短暂的(ephemeral)和持久的(persistent),节点包含数据和子节点。

    4、znode数据包含多个版本。

    5、客户端可以在节点上设置监视器(watch)。

    6、znode不支持部分读写,需要一次性全部执行完成。

    7、znode类型在创建时确定,并不能修改。

    8、znode有四种类型目录节点,persistent, persistent_sequential,  ephemeal,  ephemeal_sequential

    六、zookeeper统一命名服务。

    1、在分布式环境下,经常需要对应用/服务统一命名,便于识别不通服务。

    1.1 类似于ip和域名的关系。

    1.2 通过名称来获取资源或者服务的地址信息。

    2 按照层次组织服务/应用名称。

    2.1 它可以将服务名称以及地址名称写到zookeeper中,客户端通过服务名称获取服务列表。、

    七、zookeeper--配置管理。

    1、 分布式环境下,需要经常配置文件管理和同步。

    1.1  y一个集群中,所有的节点配置和信息是一致的。

    1.2 我们对配置文件修改后,需要尽快同步到各个节点中。

    2  配置管理可以交给zookeeper实现。

    2.1  可将配置文件写入到一个znode中。

    2.2  各个节点监听这个znode。

    2.3  一旦znode的配置文件被修改,zookeeper将通知到其它各个znode

    八、zookeeper集群管理。

    1、分布式环境中,我们需要实时掌握每个节点的状态。

    1.1 可根据节点状态实时做出一些调整。

    2、k可交由zookeeper实现。

    2.1 可将zookeeper节点信息写入到一个znode中。

    2.2 监听这个节点的实时变化。

    九、 zookeeper分布式通知与协调。

    1、分布式环境中,一个服务经常需要知道他的子服务状态,

    1.1 namenode需知道各个DataNode的状态。

    1.2 resource manager需要知道nodemanager状态

    2、zookeeper实现心跳监测机制,实时信息推送,相当于一个发布/订阅系统。

    十、zookeeper分布式锁。

    1、zookeeper是强一致性的

    2、实现锁的独占性。

    3、控制锁的时序。

    十一、分布式队列

    分布式队列有两种

    1、当一个队列全部都聚齐时,这个队列才可以用,否则这个队列会一直等所有成员到达,这种成为同步队列。

    1.1 当一个job由所有的task组成时,所有的任务完成后,job才运行。

    1.2可为job创建一个/job,然后在该目录下,为每个完成task创建一个临时的znode,当临时节点的目录数达到task总数时,则job表示完成。

    2、队列实现FIFO模式,实现生产者和消费者模型。

  • 相关阅读:
    Android-setDefaultKeyMode方法
    Andorid-Fragment生命周期
    X210(s5pv210)中断系统
    X210串口配置与stdio移植
    SoC时钟系统简介
    SDRAM初始化
    重定位与链接脚本
    裸机配置C语言运行环境
    ARM汇编程序闪烁灯与其反汇编代码比较
    Makefile的简单使用
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/9057191.html
Copyright © 2020-2023  润新知