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

zookeeper应用场景!

时间:2015-05-23 00:03:00      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:zookeeper   分布式   分布式应用   

Zookeeper应用场景:

分布式队列
FIFO(先进先出)
Barrier(同步队列)
共享锁
集群管理
leader选举
命名服务
分布式应用配置项的管理等


FIFO设计思路

1.在/queue-fifo的目录下创建 SEQUENTIAL 类型的子目录 /x(i),这样就能保证所有成员加入队列时都是有编号的。


2.出队列时通过 getChildren( ) 方法可以返回当前所有的队列中的元素,然后消费其中最小的一个,这样就能保证FIFO


Barrier设计思路:

同步队列初始化
创建一个父目录 /synchronizing,代表同步队列
进入队列
创建子节点 /synchronizing/member_i
查人数
人齐了(子节点个数=参会人员个数)
创建 /synchronizing/start,开始开会
/synchronizing/start 节点一旦创建就证明人到齐了
人不齐
等待 /synchronizing/start 的出现

共享锁实现思路:

创建锁
创建一个父节点/locks 代表同步锁
每个进程启动的同时在/locks下面建立子节点/locks/member_i,并且保存自己的IP地址
获得锁
查找/locks下子节点编号最小的哪一个,查看数据是否为自己的IP地址,如果是的话,就代表获得锁,否则继续等待
释放锁
执行完业务操作,把自己创建的节点删除,就代表释放锁


类似于火车站排队买票






集群管理::::

监控集群中的节点增加或者减少,可以动态感知

技术分享



zookeeper应用场景!

标签:zookeeper   分布式   分布式应用   

原文地址:http://blog.csdn.net/u010220089/article/details/45922519

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