一  初识 ZooKeeper 

            高效且可靠的分布式协调服务。解决分布式一致性问题
            统一命名服务、配置管理服务、分布式锁服务。
     使用: 比如配置文件统一,比如通知负载均衡协调。
               

    ZooKeeper 特性:
            顺序一致性:  同客户端发起的事物请求,最终将严格的按照其发起顺序被应用到 ZooKeeper 中去。
            原子性      :  所有事物的请求处理结果在整个集群中所有机器是一直的。 要么都成功,要么都没有。
            单一视图    : 所有客户端看到的数据模型是一致的。
            可靠性       : 一旦服务端成功的应用了一个事物,并完成对客户端的响应,那么该事物所引起的状态变会被永久保存。除非更改
            实时性        :  

    ZooKeeper 好的原因:
            1    高性能:内存处理 (传输 Netty)
            2    构建集群:Watch发送包少。
            3    监听强大、Watch 机制。
            4    高可用、Leader 选举

ZooKeeper 压力测试:

三节点、五节点、七节点性能效率。

创建100W节点用时:15.0秒。

删除100W节点用时:13.8秒。

设置100W节点用时:90.0秒。

读取100W节点用时:50.5秒。

客户端测试

创建断开。1000节点用时:5.6 秒,全部 watch 成功到达。

方法锁排它锁。

一万次 结果: 66.8 秒,成功。

Watch 监听节点:

1 创建临时节点

2 监听临时节点

3 删除临时节点 产生 Watch - 走 1

一万次 结果: 68.5 秒,成功。



ACL 权限控制,增删改查 和设置 节点 ACL 权限。
ZAB 协议 原子消息广播  同一时刻只有一个主进程来广播服务器状态变更


ZooKeeper 集群角色
    1    Leader 处理 所有事物请求,所有写操作,为客户单提供读写服务。
            Leader服务器负责将一个客户端请求转换成一个事物(ProPosal ),并将事物分发给所有 Follow 服务器。之后等待 Follow 服务器反馈,一旦超过半数+1进行了反馈,那么Leader会再次向所有Follower 分发 Commit 消息。要求提交。
            (SID ZXID) ,先 ZXID , 后比SID。
            在新一轮原子广播事物前,一定会先选举Leader。当超过半数进行消息广播、崩溃恢复、 
    2    Follower 为客户端提供度读服务,写服务/事物请求移交给 Leader。 不参与投票
    3    Observer 提供读服务,写服务/事物请求移交给 Leader。 不参与投票


ZooKeeper 会话(Session)
    一个客户端连接是指 客户端和服务端一个 TCP 长连接。 ZooKeeper 默认对外端口2181. 客户端与ZK连接时候会声明生命周期。通过 TCP 连接客户端通过心跳检测与服务器保持会话。 还能接受服务器的 Watch 事件通知。 在声明的SessionTimeout 时间内可以断开后重连而不清除数据。

Curator ——ZooKeeper 的更方便的客户端。 (方便监听、分布式锁)使用 Curator 同步分布式。
Barrier 分布式屏障。 
    应用场景为一个队列所有的元素都必须全部到达后方可进行统一安排。
DistributedBarrier.setBarrier() 设置
DistributedBarrier.waitOnBarrier() 等待Barrier释放
DistributedBarrier.removeBarrier() 释放Barrier
DistributedDoubleBarrier.enter() 等待线程达到数量所有成员同时触发进入 
DistributedDoubleBarrier.leave() 再次等待所有成员。
    


ZK 节点特性

PERSISTENT:持久节点

EPHEMERAL:临时节点不允许创建子节点。

SEQUENTIAL:节点名末尾追加一个10位数的单调递增的序号同一个节点的所有子节点序号是单调递增的

PERSISTENT_SEQUENTIAL:持久 且 追加 10位数

EPHEMERAL_SEQUENTIAL: 临时 且 追加 10位数

节点属性:
    czxid(Create)    节点被创建时的事物ID
    mzxid (Modified)   最后一次被更新的事物ID
    ctime                        创建时间
    mtime                        修改时间
    version                        数据节点版本。
    cversion                     子节点版本号
    aversion                     节点 ACL 版本号
    ephemeralOwner        创建该临时节点的会话的 sessionId。如果是持久节点此为0
    dataLength                 数据内容长度
    numChildren                当前节点的子节点个数
    pxzid                            子节点列表变更通知,(内容不会)
        


ZooKeeper 事物
        


Watch 特性总结
    1    一次性
            一旦一个 Watcher 被触发,ZooKeeper 都会将其从相应的存储中移除。 (需要重复注册Watch)
    2    客户端串行执行
            因为串行,所以不要因为一个 Watch 的处理逻辑影响整个客户端回调。
    3     轻量
                同启动期投票

新节点加入时,当他试图进行选举会被告知当前服务器的 Leader 信息。对于该机器来说,仅仅需要和Leader 建立连接,并进行状态同步即可。

      

ZK 会话 。P352

读 Paxos 到 ZooKeeper ¥ 50大洋的更多相关文章

  1. 《从Paxos到Zookeeper:分布式一致性原理与实践》【PDF】下载

    内容简介 Paxos到Zookeeper分布式一致性原理与实践从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议. ...

  2. 从Paxos到Zookeeper 分布式一致性原理与实践读书心得

    一 本书作者介绍 此书名为从Paxos到ZooKeeper分布式一致性原理与实践,作者倪超,阿里巴巴集团高级研发工程师,国家认证系统分析师,毕业于杭州电子科技大学计算机系.2010年加入阿里巴巴中间件 ...

  3. 我读《从Paxos到zookeeper分布式一致性原理与实践》

    从年后拿到这本书开始阅读,到准备系统分析师考试之前,终于读完了一遍,对Zookeeper有了一个全面的认识,整本书从理论到应用再到细节的阐述,内容安排从逻辑性和实用性上都是很优秀的,对全面认识Zook ...

  4. 《从Paxos到ZooKeeper分布式一致性原理与实践》学习笔记

    第一章 分布式架构 1.1 从集中式到分布式 集中式的特点: 部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题) 分布式系统是一个硬件 ...

  5. 《从Paxos到ZooKeeper 分布式一致性原理与实践》读书笔记

    一.分布式架构 1.分布式特点 分布性 对等性.分布式系统中的所有计算机节点都是对等的 并发性.多个节点并发的操作一些共享的资源 缺乏全局时钟.节点之间通过消息传递进行通信和协调,因为缺乏全局时钟,很 ...

  6. 从 Paxos 到 ZooKeeper

    分布式一致性 分布式文件系统.缓存系统和数据库等大型分布式存储系统中,分布式一致性都是一个重要的问题. 什么是分布式一致性?分布式一致性分为哪些类型?分布式系统达到一致性后将会是一个什么样的状态? 如 ...

  7. 2月22日 《从Paxos到Zookeeper 分布式一致性原理与实践》读后感

    zk的特点: 分布式一致性的解决方案,包括:顺序一致性,原子性,单一视图,可靠性,实时性 zk的基本概念: 集群角色:not Master/Slave,is Leader/Follower/Obser ...

  8. Paxos与zookeeper

    1,什么是Paxos算法? Paxos算法是分布式计算领域中一个非常重要的算法,主要解决分布式系统如何就某个值(决议)达成一致的问题.一个典型的场景是分布式数据库的一致问题:如果分布式数据库的各个节点 ...

  9. 从Paxos到Zookeeper分布式一致性原理与实践 读书笔记之(一) 分布式架构

    1.1 从集中式到分布式 1 集中式特点 结构简单,无需考虑对多个节点的部署和节点之间的协作. 2  分布式特点 分不性:在时间可空间上随意分布,机器的分布情况随时变动 对等性:计算机之间没有主从之分 ...

随机推荐

  1. springmvc两种非注解的处理器适配器

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...

  2. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  3. 路飞学城Python-Day12

    7月10日安排  完成所有函数作业和思维导图整理   [45.函数-生成器] 如果数据是有规律的,就可以先生成一个数据,等数据执行的时候再执行,也就是在真正调用数据之前,拿到数据的生成规律,而是拿到生 ...

  4. selenium自动化(三).........................................框架篇

    三.Unittest框架介绍: 1.Unittest类似于java中的Junit,功能较为简单,逻辑简单,理解和使用起来比较简单 1)       安装:自带框架,无需安装 2)       使用:可 ...

  5. 一线 | 中国联通宣布首批5G手机到位

    腾讯<一线> 作者郭晓峰 据中国联通相关人士今日透露,中国联通用于 5G 友好体验的首批合作 5G 手机全部到位.有 12 个品牌共 15 款 5G 手机及 5G CPE,包括.华为. O ...

  6. 你可能需要了解下Laravel集合

    前言 集合通过 Illuminate\Support\Collection 进行实例,Laravel的内核大部分的参数传递都用到了集合,但这并不代表集合就是好的.Laravel作为快捷并优雅的开发框架 ...

  7. WebLogic 服务器配置

    环境版本    Windows 8.1       WebLogic 10.3.0     JDK:1.6 WebLogic 创建域在Windows环境下有两种方式: 1.直接在开始菜单创建domai ...

  8. GenIcam标准(一)

    1.概述 如今的数码摄相机包含了很多的功能,而不仅仅是采集图像.对于机器视觉相机来说,处理图像并把结果附加到图像数据流上,控制附加的硬件,代替应用程序作实时的处理等都是很平常的事情.这也导致了相机的编 ...

  9. echarts 地图 动态 展示 结合css+js

    echarts地图展示功能非常强大,官网上静态展示的样例非常多了,动态的资料少.研究了下.我眼下实现的通过ajax从server获取数据动态展示地图. 另外,我们有时候希望在地图之上做些自己定义的东西 ...

  10. C++开发人脸性别识别教程(3)——OpenCv配置和ImageWatch插件介绍

    OpenCv是C++图像处理的重要工具.这个人脸性别识别的项目就是借助OpenCv进行开发的. 尽管网上已经有了非常多关于OpenCv的配置教程,但出于教程完整性考虑.这里还是用专门的一篇博客来介绍O ...