上面我们已经讨论了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. Ubuntu下搭建repo服务器(一): 配置gitosis

    1. 说明 服务器端IP: 192.168.1.126,下文简称:A端: 客户端IP: 192.168.130.19,下文简称:B端: Android工程代号:17435. 2. 安装必要软件(A端) ...

  2. C#之纯数字判断

    public bool isNaN(string temp) { ; i <temp.Length; i++) { byte tempByte = Convert.ToByte(temp[i]) ...

  3. lsit集合去重复 顶级表达式

    updateList = updateList.Where((x, i) => updateList.FindIndex(z => z.ID == x.ID) == i).ToList() ...

  4. 2.Dubbo开源分布式服务框架(JAVA RPC)

    1. Dubbo介绍 Dubbox是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能RPC(即远程调用)实现服务的输出和输入功能, 可以和Spring框架无集成.Dubbo是一款高性能 ...

  5. JQuery 兼容所有浏览器的复制到剪切板功能

    灵机一动想的点子,应该不难理解 <textarea onmousedown='selectAll(this);'>11111</textarea> function selec ...

  6. Laravel5.1学习笔记6 响应

    基本响应 附加头信息到响应 附加Cookie到响应 其他响应 View视图响应 JSON响应 File下载 重定向 重定向到命名路由 重定向到控制器Action 附带闪回Session数据重定向 响应 ...

  7. ★Java语法(四)——————————运算符

    使用除法“/”  ,要特别注意数据类型的问题.若被除数和除数都是整形,且被除数不能被除数整除时,这时输出的结果为整数,(即整形数/整形数=整形数),这是因为整形变量无法保存小数点后面的数据所致,要特别 ...

  8. 范畴论-一个单子(Monad)说白了不过就是自函子范畴上的一个幺半群而已

    范畴即为结构:包含要素和转化. 范畴为高阶类型. 函子为高阶函数.函子的输入为态射.函子为建立在态射基础上的高阶函数.函子用于保持范畴间映射的结构.态射用于范畴内部的转换. 群为运算规则的约束. 自函 ...

  9. java操作Excel的poi 格式设置

    格式设置 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi. ...

  10. 【转载】IDEA的这八条配置你一定要改!

    引言 坦白说,我很少写这种操作类型的文章.因为这种文章没啥新意,大家操作步骤肯定是一样的.然而,我答应了我的同事小阳,给她出一篇!毕竟人家打算从Eclipse转IDEA了,于是以示鼓励,写一篇给她!那 ...