zoukankan      html  css  js  c++  java
  • ZooKeeper 概述

    ZooKeeper:分布式应用程序的分布式协调服务

    ZooKeeper:是用于分布式应用程序的分布式开源协调服务
    
    可以简单理解:ZooKeeper = 文件系统 + 通知机制
    
    从设计模式角度理解:Zookeeper 是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。

    特点

    1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
    2)集群中只要有半数以上节点存活,Zookeeper 集群就能正常服务。
    3)全局数据一致:每个 Server 保存一份相同的数据副本,Client 无论连接到哪个 Server,数据都是一致的。
    4)更新请求顺序进行,来自同一个 Client 的更新请求按其发送顺序依次执行。
    5)数据更新原子性,一次数据更新要么成功,要么失败。
    6)实时性,在一定时间范围内,Clicnt 能读到最新数据。

    数据结构

    采用数据模型和分层命名空间
    
    ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 lMB 的数据,每个 ZNode 都可以通过其路径唯一标识。
    
    节点类型:
    一、持久(Persistent,默认):客户端和服务器端断开连接后,创建的节点不删除
    (1)持久化目录节点(PERSISTENT),客户端与 Zookeeper 断开连接后,该节点依旧存在
    (2)持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL),客户端与 Zookeeper 断开连接后,该节点依旧存在,只是 Zookeeper 给该节点名称进行顺序编号
    
    二、短暂(Ephemeral):客户端和服务器端断开连接后,创建的节点自己删除
    (1)临时目录节点(EPHEMERAL),客户端与 Zookeeper 断开连接后,该节点被删除
    (2)临时顺序编号目录节点(EPHEMERAL_SEQUENTIAL),客户端与 Zookeeper 断开连接后,该节点被删除,只是 Zookeper 给该节点名称进行顺序编号
    
    说明:创建 znode 时设置顺序标识,znode 名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护
    注意:在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序

    常见应用场景

    统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等

    https://zookeeper.apache.org/doc/current/zookeeperOver.html

  • 相关阅读:
    常用正则表达式
    The Skins Factory 界面设计欣赏
    The Regulator 轻松上手
    Visual C#的Web XML编程
    业务流程不是需求
    如使用ODBC连接informix
    AJAX在信息系统中的应用研究
    浅谈几个SQL的日志概念
    量产 朗科(Netac)朗盛系列闪存盘E108 8G 手记
    【转】告诉大家他们是怎么成为富翁的
  • 原文地址:https://www.cnblogs.com/jhxxb/p/10744703.html
Copyright © 2011-2022 走看看