初始ZooKeeper(二)——应用实例

学习笔记 yan loading.. 14评论

统一命名服务

说白了,zookeeper会帮我们的文件起名,起的名字还挺好听,还不会重复,便于识别跟记忆,是不是很棒

配置管理

简单点,改变一台机器的配置,其他机器也会跟着改变

集群管理

监听是否有机器退出和加入、动态选举Master(最小节点法,最大数据法)

ZK有三种自己选主的方法,但是我们可以利用zk的特性完成其他集群的选主,步骤如下:

结构图解释:左侧树状结构为zookeeper集群,右侧为程序服务器。所有的服务器在启动的时候,都会订阅zookeeper中master节点的删除事件,以便在主服务器挂掉的时候进行抢主操作;所有服务器同时会在servers节点下注册一个临时节点(保存自己的基本信息),以便于应用程序读取当前可用的服务器列表。

选主原理介绍:zookeeper的节点有两种类型,持久节点跟临时节点。临时节点有个特性,就是如果注册这个节点的机器失去连接(通常是宕机),那么这个节点会被zookeeper删除。选主过程就是利用这个特性,在服务器启动的时候,去zookeeper特定的一个目录下注册一个临时节点(这个节点作为master,谁注册了这个节点谁就是master),注册的时候,如果发现该节点已经存在,则说明已经有别的服务器注册了(也就是有别的服务器已经抢主成功),那么当前服务器只能放弃抢主,作为从机存在。同时,抢主失败的当前服务器需要订阅该临时节点的删除事件,以便该节点删除时(也就是注册该节点的服务器宕机了或者网络断了之类的)进行再次抢主操作。从机具体需要去哪里注册服务器列表的临时节点,节点保存什么信息,根据具体的业务不同自行约定。选主的过程,其实就是简单的争抢在zookeeper注册临时节点的操作,谁注册了约定的临时节点,谁就是master。

ps:本文的例子中,并未用到结构图server节点下的数据。但换一种算法或者业务场景就会用到,算法比如提到的最小编号,主要逻辑是主节点挂掉后,从节点里边编号最小的成为主节点,此时会用到该节点内容。换一种业务场景:集群环境中,有很多任务要处理, 主节点负责接收任务,并根据一定算法将任务分配到不同的机器上执行;这种情况下,主节点跟从节点的职责也是不同的,主节点挂掉也会涉及到从节点进行master选举的问题。这种情况下,很显然,作为主节点需要知道当前有多少个从节点还活着,那么此时也会需要用到servers节点下的数据了。

队列管理

1、同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达,本文最后将实现此队列demo。

2、队列按照 FIFO 方式进行入队和出队操作。

实现分布式锁

流程如下:

更多:http://blog.csdn.net/tang06211015/article/details/51850516

关注<爱上极客>公众号,定期推送精彩内容!

喜欢 (1)

如未说明则本站原创,转载请注明出处:爱上极客 » 初始ZooKeeper(二)——应用实例


0
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(14)个小伙伴在吐槽
  1. 世间博客不少,风景这边独好!
    笑八达2017-08-29 08:38 回复
  2. 这里来不够,看不够,玩不够!
    三五游戏2017-09-07 13:57 回复
  3. 这个博客不简单,看了还想接着看。
    快乐赚2017-09-12 07:14 回复
  4. 没事就来转一转,每天多吃两碗饭!
    沃八达2017-09-15 08:17 回复
  5. 能让人来访的乐此不疲,这里就是有那么大的魅力!
    三五营销软件2017-09-20 15:06 回复
  6. 人生短暂,开心每一天!
    沃八达2017-09-25 09:32 回复
  7. 文章不错支持一下吧
    手机排行榜2017-09-28 14:25 回复
  8. 路过,不错哦
  9. 这个是干什么的
    赵孟頫2017-10-05 22:06 回复
  10. 博客不错,大爱哦!
    尚吾康网2017-10-13 16:19 回复
  11. 博客不少,这里独好! 丁酉年(鸡)八月廿五 2017-10-14
    营销软件下载2017-10-14 11:14 回复
  12. 阅读博客获得的进步不亚于阅读一本书。
    套图网2017-10-18 13:45 回复
  13. 不止一次的来,不止一次的去,来来去去,这就是这个博客的魅力!
    套图网2017-10-24 14:10 回复
  14. 学海无涯,博客有道!拜读咯!
    健康网2017-10-25 16:01 回复