上面我们已经讨论了zookeeper在应用程序中的一些操作,以下我们须要理解一下服务端的工作的原理。client是怎样通过一个client的类库与服务端进行通信的,然后服务端又是怎样回应client的。

以下这张图显示了client和服务端的关系,每一个client都须要导入到client的类库中。然后才干够与zookeeper的节点进行交互

Zookeeper能够运行在两种模式中各自是独立模式和复制模式,独立模式就是同意在一台主机上。zookeeper的状态并不能被复制;对于集群模式,我们能够保证服务端的状态一致。而且同一时候一起收到来自client的请求。

Zookeeper的集群模式

在集群模式中。zookeeper须要复制他们的数据信息来保证全部的服务端信息一致性。那么假设每一个client都须要等全部的信息一致的话。时间将会很的长。在一个公共的管理中,我们能够採取以下办法,比如有5台zookeeperserver。可是能够有三个集群的话,那么client仅仅须要在3个集群信息保持一致的话,就能够进行以下的操作,后面的2台zookeeperserver终于会赶上和存储数据。

重要的是怎样选择一个适当的大小的群体,最后必须保证,不管延迟和系统崩溃,不论什么更新请求,服务都能够运行下去。

在一个有5个节点的集合体中,每一个Follower节点的数据都是Leader节点数据的副本,也就是说我们的每一个节点的数据视图都是一样的,这样就能够有五个节点提供ZooKeeper服务。而且集合体中随意2台机器出现问题,都能够保证服务继续,由于剩下的3台机器超过了半数。

回话

在client与zookeeper交互之前,client必须与服务端建立一个回话。回话是必须的,不论什么client的操作都必须在回话中完毕,一旦回话结束,暂时节点也将会消失。

会话保证了顺序的运行,这意味着请求在一个会话中运行FIFO(先进先出)。通常情况下,一个客户仅仅有一个会话打开,所以它的请求都是先进先出顺序运行。假设一个客户有多个并发会话。先进先出顺序不一定是保存在会话。

连续会话同样的客户,即使他们不重叠,也不一定保持先进先出顺序。

这是可能发生在这样的情况下:

1.   client建立一个会话,使连续两个异步调用创建/task和/worker

2.   第一个回话过期了

3.   client创建了另外一个回话,异步的调用创建了/assign

在这个调用序列,它是可能的,仅仅有创建了/task和/assign,它保留了第一次回话中先进先出的顺序,但违反了跨回话。

Zookeeper体系结构的更多相关文章

  1. 分布式服务协调技术zookeeper笔记

    本文主要学习ZooKeeper的体系结构.节点类型.节点监听.常用命令等基础知识,最后还学习了ZooKeeper的高可用集群的搭建与测试.希望能给想快速掌握ZooKeeper的同学有所帮助. ZooK ...

  2. ZooKeeper学习第六期---ZooKeeper机制架构

    一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制.ACL的 ...

  3. 【Zookeeper系列】ZooKeeper机制架构(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4133784.html 一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control L ...

  4. ZooKeeper系列(6):ZooKeeper机制架构

    一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制.ACL的 ...

  5. ZooKeeper学习第六期---ZooKeeper机制架构(转)

    转载来源:https://www.cnblogs.com/sunddenly/p/4133784.html 一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control L ...

  6. HBase体系结构(转)

    HBase的服务器体系结构遵循简单的主从服务器架构,它由HRegion服务器(HRegion Server)群和HBase Master服务器(HBase Master Server)构成.HBase ...

  7. HBase体系结构

    HBase的服务器体系结构遵从简单的主从服务器架构,它由HRegion服务器(HRegion Service)群和HBase Master服务器(HBase Master Server)构成.Hbas ...

  8. Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)

    ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookee ...

  9. [转载] zookeeper应用——集中配置管理系统的实现

    转载自http://blog.csdn.net/huangfengxiao/article/details/8844239 1 场景描述 参考http://www.ibm.com/developerw ...

随机推荐

  1. WebService开发-Hessian

    Hessian 开发Web Service 一.关于Hessian Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI的功能. 相比WebService,He ...

  2. Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook解决方法

    有时候电脑中进行Java -version相关的操作时,会出现Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook提示信息,尽管这些提示信息不影响JDK的正常使 ...

  3. 工具分享2:Python 3.6.4、文本编辑器EditPlus、文本编辑器Geany

    工具官网下载地址: https://www.python.org/downloads/ python 3.6.0下载链接: 链接:https://pan.baidu.com/s/1snuSxsx 密码 ...

  4. BZOJ 1914 计算几何

    思路: 我们可以算不合法的 如果三个点都在同一侧 就不合法.. 用总方案数减掉就可以了 (有神奇的实现方法...) //By SiriusRen #include <cmath> #inc ...

  5. POJ 3230 DP

    f[i][j]=max(f[i][j],f[i-1][k]-a[k][j]+b[i][j]) i->第i天 j-–>到第j个城市 #include <cstdio> #incl ...

  6. Redis学习笔记(五)- 数据类型之set类型

    Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...

  7. 自己整理的HTML基本标签参考知识

          基 本 标 签 创建一个HTML文档 <html></html> 设置文档标题以及其他不在WEB网页上显示的信息 <head></head> ...

  8. Android Unresolved Dependencies

    在Android Studio的开发中,在软件中集成了ButterKnife插件,另外需要集成ButterKnife的jar包.因为本地没有现成的,所以在module的build.gradle文件中添 ...

  9. windows 下安装mysql 成功版

    mysql 下载地址 http://dev.mysql.com/downloads/ zip版下载 解压到本地 假设文件保存在C:\mysql-5.7.17-winx64 1.以管理员身份运行cmd. ...

  10. react性能调谐与diff算法

    一个页面其实就相当于是一颗dom树,里面有很多它的子节点,然后你每次去操作一个事件,它都会生成一个虚拟dom,它会跟上一个虚拟dom进行比对,这里运用的算法叫做diff算法,当它找到需要改变的组件的时 ...