ZooKeeper 的功能和原理

https://blog.csdn.net/weijifeng_/article/details/79775738

介绍 

             是一个分布式协正常调服务,就是为用户的分布式应用程序提供协调服务

              A:zookeeper是为别的分布式程序服务的

              B:zookeeper本身就是一个分布式程序(只要有半数以上的节点存活,就能正常服务)

              C:zookeeper所提供的服务涵盖,主从协调,服务器节点动态上下线 ,统一配置管理,分布式共享锁,统一名称服务。。。

              D:虽然说可以提供各种服务,但zookeeper在底层其实只提供了两种服务

                   管理(存储,读)用户提交的数据

                   并为数据提供监听服务       

       应用场景,不适合要求数据安全非常严格,因为当集群数量比较大,选举leader的时间会较长,这段时间的数据可能丢失。

一致性

  1. 强一致性        当一台机器修改后,另一台一定会读到最新的修改信息 
  2. 弱一致性        当一台机器修改后,另一台可能会读到最新的修改信息 
  3. 最终一致性

数据格式

1:层次化的目录结构,命名符合常规文件系统规范(见下图)

2:每个节点在zookeeper中叫做znode,并且有唯一的路径标识

3:节点Znode可以包含数据和子节点(但是EPHEMERAL类型的节点不能有子节点)

4:客户端应用可以在节点上设置监听器。

分布式的CAP理论

 

  • Consistency:一致性(强一致性)
  • Availability:可用性
  • Partition Tolerance:分区容错性

钱财安全(CP),用户体验(AP) 

集群写一致性(同步)过程

          1:领导

          2:两阶段提交     1)leader向follower预提交   2)follower向leader返回ack(响应)   3)过半响应则证明可以执行请求 commit进行写请求

          3:过半回复

多台机器同时写操作

           有个单线程的queue(队列),确保顺序,即zxid。

lead选举机制

         1:zxid最大的(即最新的)。

          2:如果zxid一致则选择id最大的。

       最后选择票数最多的

                   A(id=1;zxid=10)          B(id=2;zxid=10)          C()

第一次        [a(1,10)]                           [b(2,10)]

同步            [a(1,10),b[2,10]]               [b(2,10),a(1,10)]

第二次对比 [b(2,10),b[2,10]]               [b(2,10)]

同步            [b(2,10),b[2,10]]               [b(2,10),b[2,10]]   

3台机器有两个都选的B,B成为领导者。

脑裂

https://my.oschina.net/tantexian/blog/2876309

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值