【分布式协调zookeeper】基础篇

一、zookeeper介绍

 它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等
zookeeper做了什么?

1.命名服务 2.配置管理 3.集群管理 4.分布式锁 5.队列管理

二、zookeeper架构的架构模型

zookeeper的两种模型的混合式:

Client-Server模型:用于对分布式协调系统中的对象提供协调服务;

Peer-to-Peer模型:用于在zookeeper集群内交互数据;

这种混合的体系结构,让zookeeper既保持客户端的简单化,又能够在集群内部保持一个良好的高可用机制;

zookeeper的两种运行模式:standalone 和 quorum

standalone模式:

代表zookeeper由一个单一节点构成,它的数据并不需要再多个节点之间复制;

quorum模式:

该模式主要多用于生产环境,zookeeper有多个节点后构成一个集群,通过zookeeper的Leader选举、集群节点间的数据同步有关;

当才用quorum模式时,它的基本运转流程是:

① 选举Leader

② 同步数据

③ 选举Leader过程中算法有很多,但要达到的选举标准是一致的;

④ Leader要具有最高的zxid

⑤ 集群中大多数的机器得到相应并follow选出的Leader

说明:

对于用户的读操作,zookeeper集群中的所有节点都可接收处理;
对于用户的写操作,zookeeper将它作为事务进行处理,并只有Leader才能发起事务;在每次提交之前,修改的数据要在集群中同步;

三、数据模型

zookeeper是通过集中性的C/S架构服务于客户端的,采用的是点对点的Pair-Pair架构在各节点间进行同步数据,zookeeper内部的数据结构和数据类型采用了精简的方式提供给用户使用

在数据结构上,zookeeper采用的是树形结构;树种的节点被称为znode,在整棵树种有着清晰的父子层次关系;

zookeeper对数据的修改都当做一次事务来看待,每次的事务动作都是原子操作,并分配一个唯一的zxid(zookeeper transacation id);

在每一个znode中都记录了与之相关的zxid;znode除了有效载荷数据,还包括如下属性:

czxid:引发当前znode改变的zxid

mzxid:当前znode上一次修改前的zxid

ctime:对znode事务操作所花费的时间,单位是毫秒

mtime:操作上一次znode事务所花费的时间,单位是毫秒

version:关联到zxid,znode自身版本属性,当前znode修改的次数

cversion:znode子节点的修改次数

aversion:znode ACL(访问列表)的修改测试

ephemeralOwner:记录客户端会话ID,如果是持久型znode 则为0

dataLength:znode数据字段的长度

numChildren:znode子节点的个数

1、持久型与短暂型的znode【对应于ephemeralOwner属性】

znode在创建的时候可以指定模式,可以用不同的模式组合成需要的分布式场景功能;

一个znode节点可以是持久的(Persistent),也可以是短暂的(Ephemera);

区别:
持久型:

只有收到删除命令后才能被删除;

用于保存结构信息;

短暂型:

会在客户端与服务端之间保存的会话中断时自动删除;

也能像持久型znode一样被命令删除;

客户端与服务端之间一旦建立连接,则会有定期的心跳检查以保证这个长连接的存活

2、序列znode

创建znode时会自动分配一个唯一的递增的整数,这个正向序列可以作为路径名称的一部分;

例如:客户端创建了一个序列znode为/woker/work-,则zookeeper会自动分配一个序列数,如果是当前znode下的第一个子节点则分配为1,路径变为/worker/work-1;序列节点最大的作用就是生成唯一名称节点,同时能够提供节点间的创建次序信息

3、ACL【访问列表】

zookeeper的ACL建立在认证与授权机制下,包含以下认证方式:

1. digest:通过用户名/密码对客户端进行认证;
2. sasl: 支持客户端通过Kerberos认证;
3. ip: 通过IP地址对客户端进行认证;

在授权方面,ACL可以对znode的创建(子节点)、读取、写入、删除及管理(设置ACL)进行控制

未完待续...

时间: 2024-10-30 04:45:28

【分布式协调zookeeper】基础篇的相关文章

【分布式协调zookeeper】安装篇

一.环境准备 操作系统:centOS-6.8 2.6.32-642.el6.x86_64[虚拟机环境] 节点主机:10.0.55.3.10.0.55.5.10.0.55.6 目录结构: /opt/ 软件版本:   jdk-7u67-linux-x64.rpm             zookeeper-3.5.0-alpha.tar.gz 二.安装Java环境 $ rpm -ivh jdk-7u67-linux-x64.rpm  $ cat /etc/profile export JAVA_HO

【分布式协调zookeeper】利用ansible部署篇

一.环境准备 操作系统:centOS-6.8 2.6.32-642.el6.x86_64[虚拟机环境] 节点主机:10.0.55.3.10.0.55.5.10.0.55.6 目录结构: /opt/ 软件版本:   jdk-7u67-linux-x64.rpm             zookeeper-3.5.0-alpha.tar.gz 二.安装Java环境 $ rpm -ivh jdk-7u67-linux-x64.rpm  $ cat /etc/profile export JAVA_HO

(九)分布式服务----Zookeeper注册中心

==>>点击查看本系列文章目录 首先看一下几种注册中心: 最老的就是Zookeeper了, 比较新的有Eureka,Consul 都可以做注册中心.可以自行搜索对比三者的优缺点. Zookeeper 最开始就是hadoop大家族中的一员,用于做协调的框架,后来已经是apache的子项目了. 几年前大数据很火的时候,只要学hadoop必学zookeeper,当然还有其他成员. 大数据简单说就是分布式,比如分布式文件存储hdfs,分布式数据库hbase,分布式协调zookeeper,还有kafka

搞懂分布式技术3:初探分布式协调服务zookeeper

搞懂分布式技术3:初探分布式协调服务zookeeper 1.Zookeepr是什么 Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡,命名服务,分布式协调/通知.集群管理,Master选举,分布式锁和分布式队列等功能. 2.zookeeper可以保证的分布式一致性 a.顺序一致性 从一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到zookeeper中去 b.原子性 所有事务请求的处理结果在整个集群中所有机器上的应用情

分布式协调服务Zookeeper原理

CAP理论 C: (Consistency) 一致性 ???????在分布式系统中,数据能够在多个副本之间保持一致的特性.对于有多个副本的分布式系统来说,如果数据在一个节点上进行修改,其他节点尚未同步数据,当在其他节点上读取操作的时候,读取的还是老的数据.这就是分布式数据不一致. ???????在分布式系统中,如果更新一个节点,其他节点的数据也能保证有相应的更新.那么系统被认为具有强一致性. A: (Availability) 可用性 ???????在分布式系统中,可用性指的是系统提供的服务,一

DFS分布式文件系统--基础篇

DFS分布式文件系统--基础篇 DFS是将相同的文件同时存储到网络上多台服务器上后,就可以有以下功能和优点: 提高文件的访问效率:DFS服务器会向客户端提供一个服务器列表,列表中的这些服务器内部有客户端所需要的文件.DFS会将最接近客户端的服务器,放在列表最前面,以便让客户端优先从这台服务器来访问文件 . 提高文件的可用性:当提供资源的服务器列表中的某一台服务器出现故障,客户端仍然可以从列表中的下一台服务器获取所需要的文件,即DFS提供排错功能. 服务器负载平衡功能:由于存放相同文件,有可能有多

知识链-分布式协调服务zookeeper

分布式协调服务 Zookeeper zookeeper是一个开源的分布式协调服务.是典型的分布式数据一致性的解决方案. 集群内所有server基于Zab(ZooKeeper Atomic Broadcast)协议进行通信 Zookeeper官网地址: http://zookeeper.apache.org/ Zookeeper官网文档地址:http://zookeeper.apache.org/doc/trunk/index.html 认识ZooKeeper ZooKeeper概述 ZooKee

Hadoop系列之zookeeper(分布式协调服务)安装配置

Hadoop系列之zookeeper(分布式协调服务)安装配置 1.安装cd /root/softtar zxvf zookeeper-3.4.6.tar.gzmv zookeeper-3.4.6 /usr/local/hadoop/zookeeper2.修改配置文件mkdir -p /data/zookeeper/data //3个节点都需要创建此目录cd /usr/local/hadoop/zookeeper/confcp zoo_sample.cfg zoo.cfg#vim zoo.cfg

3.高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建

高并发教程-基础篇-之分布式全文搜索引擎elasticsearch的搭建 如果大家看了我的上一篇<2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离>文章,如果能很好的利用,那么其实已经可以轻松日抗千万级别的访问量了,但是如果业务涉及查询比较多,查询条件比较丰富,又或者我就想要查询的响应更快点,那么在mysql上面去做优化,其实比较辛苦,有没有更好的解决方案呢?答案是肯定的!它就是我们今天的主角,分布式全文搜索引擎elasticsearch. 技巧提示:mysql集群层主要