码迷,mamicode.com
首页 > 其他好文 > 详细

Zookeeper 基本应用及盲点

时间:2018-07-13 15:13:07      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:创建   容错   分享图片   解决   序列化   特性   image   bsp   基本应用   

主要应用

From:

https://segmentfault.com/a/1190000012185452

http://blog.fens.me/zookeeper-queue/

原理: 应用zookeeper的持久化节点PERSISTENT、临时节点(断线即自动删除)、序列化节点名SEQUENTIAL、watch等特性

master选举:

在zk某个指定目录下创建一个临时节点,并写入基本信息,成功的则是master,其他做为slave,所有的slave必须watch master节点,在删除时得到通知,开始选主

技术分享图片

分布式锁:

在特定目录下创建临时序列节点,获取该节点下所有children,按照节点自增号排序,如果自己是最小的,则得到锁,否则就监听次小序号节点的删除事件。

技术分享图片

分布式队列:

当队列填满时才通知消费者来消费

要创建queue_100

/queue入队操作就是在该目录下创建节点,当达到预定数目100时,创建/queue/start消费者通过监听该目录,得到通知后来消费,使用完后删除/queue下对应节点

技术分享图片

分布式序列号:

利用序列号


 

容错:

Quorums 存活的服务器数量大于宕机的服务器数量,则可以继续使用。

假死、脑裂:

心跳不通,导致某节点假死,然后watch的节点发现master死了开始选主,选好后网络又通了,就产生了两个master节点

ZK中的解决方法:

假设某个leader假死,其余followers选举出了一个新learder,这是旧leader复活以为自己仍然是leader,向其他followers发出写请求也是会被拒绝。因为每当新leader产生时,会生成一个epoch,该epoch递增,followers如果确认了新的Leader存在,知道其epoch,就会拒绝epoch小于现任leader epoch的所有请求。

 

Zookeeper 基本应用及盲点

标签:创建   容错   分享图片   解决   序列化   特性   image   bsp   基本应用   

原文地址:https://www.cnblogs.com/it-worker365/p/9304528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!