设为首页 收藏本站
查看: 964|回复: 0

[经验分享] 【分布式协调zookeeper】基础篇

[复制链接]

尚未签到

发表于 2019-1-8 14:00:54 | 显示全部楼层 |阅读模式
一、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)进行控制
  

  未完待续...




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660833-1-1.html 上篇帖子: 分布式锁实现大型连续剧之(二):Zookeeper 下篇帖子: zookeeper第一课:编程环境搭建和结点操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表