• zookeeper 典型应用


    一、发布/订阅

      配置文件的集中管理。

      问题:当分布式系统变多后,每个系统保存相应的配置文件,会造成同个文件有多份,修改起来非常麻烦。

      解决方法:使用zk的发布/订阅功能,配合Watcher机制,在应用启动的时候,从注册中心获取配置文件,并监听配置文件的改动。当配置文件修改时,相应的系统接收到watcher的通知,进行相应处理。

    二、命名服务

      分布式系统中,被命名的实体通常是集群中的机器、提供的服务地址或远程对象等。

      如:分布式服务框架(RPC)中的服务地址列表,通过使用命名服务,客户端应用能够根据指定名字来获取资源的实体、服务地址和提供者的信息等。

    三、集群管理

      1、Watcher 机制

      2、ZooKeeper 的节点

      通过以上两点,就可以根据节点的变化情况,对集群进行监控和控制。

    四、Master 选举

    五、分布式锁

      分布式锁是控制分布式系统之间同步访问共享资源的方式。

      1、排他锁(写锁、独占锁)

        用zk的节点来表示锁,获取锁的时候,就调用create() 方法在节点内创建子节点,由于zk保证只有一个客户端能够创建成果,因此保证了锁的唯一。没有或得锁的客户端,在节点内注册子节点变更的Watcher事件,等节点有变化时再尝试获取锁,以此循环获取锁的过程。

        释放锁的时候,客户端宕机或者锁拥有者释放锁。

      2、共享锁(读锁)

        锁类型的判断:

        1)、获取节点下所子节点。

        2)、如果没有比自己序号小的节点,或者比自己序号小的节点都是读请求,那么可以获取读锁。

        3)、如果比自己序号小的节点中有写请求,那么等待锁。

        4)、如果写请求对比所有的序号,发现自己不是最小的,那么重复排它锁的获取方式。

        注意:序号决定锁的归属。

    六、分布式队列

      1、FIFO

      2、Barrier 分布式屏障,等待某个状态,状态到达时,再执行往下步骤。

    总结:

      ZooKeeper 节点

      Watcher 机制

      这两个特性,创造了ZooKeeper 的无线可能。

  • 相关阅读:
    IIS 7的 MIME设置自定义下载文件
    jsp用js写时间
    CSS3 必须要知道的10 个顶级命令
    前端必读:浏览器内部工作原理
    文件下载的后台代码
    cookies的简单使用 客户端保存临时数据和上传文件的就Query.uploadify(2.xx版本)的使用
    Myeclipse 如何解决反应慢的问题
    时间插件,validate验证的简单jsp例子
    索引的一些总结
    jQuery选择器中含有空格和没有空格的区别
  • 原文地址:https://www.cnblogs.com/chen--biao/p/10089745.html
Copyright © 2020-2023  润新知