ZooKeeper应用技巧

ZooKeeper应用技巧 - ZooKeeper - Hadoop技术论坛 - Powered by Discuz!

ZooKeeper应用技巧

有段时间没来论坛了,很高兴Hadoop的队伍越来越大。感恩于论坛的帮助,再结合前段时间对ZooKeeper的研究学习,现在和大家交流下ZooKeeper的应用(实现机制和工作原理论坛资料很丰富)。

    在ZooKeeper的分布式应用中,有两大类应用方式:

    1 .  利用ZooKeeper类似于文件系统的存储模型,对外提供分组,配置管理,命名空间等服务

    2 .  利用ZooKeeper具有的Ephemeral Node及Watch trigger的特性, 实现某些业务逻辑(如Master-Slave)。



    第一类的应用调用ZooKeeper API即可:

    存:

   
  1. Stat stat = zookeeper.setData(path, data, version);

复制代码



    取:

   

  1. byte[] data = zookeeper.getData(path, watch, stat);

复制代码

或者

   

  1. byte[] data zookeeper.getData(path, watcher, stat);

复制代码



    第二类应用利用了Ephemeral Node标识后缀自动增长,Ephemeral Node在Session结束自动删除及Watch 实时一次触发的特性。

    例:  实现Master-Slave模式的两种方案。

           1>   根据Ephemeral Node标识判断主从(ActiveMQ-apollo)。

           2>   根据Ephemeral Node存储信息判断主从(HBase)。

    在此类应用中,Watcher的设置最为关键 ,在Watcher 的触发事件中利用下面的状态信息进行某些业务逻辑处理,最终实现Master-Slave模式。

           

  1. EventType type = event.getType();

复制代码

   

           

  1. String paht = event.getPath();

复制代码



           

  1. KeeperState state = event.getState();

复制代码



ZooKeeper的相关概念及具体特性请参照官方网站及论坛里的帖子。欢迎大家一起交流!!!

原文地址:https://www.cnblogs.com/lexus/p/2390181.html