如何进行Zookeeper开源客户端框架Curator的简单使用

如何进行Zookeeper开源客户端框架Curator的简单使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

公司主营业务:成都网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出巴里坤哈萨克免费做网站回馈大家。

    Curator最初由Netflix的Jordan Zimmerman开发, Curator提供了一套Java类库, 可以更容易的使用ZooKeeper.

    所谓ZooKeeper技巧(ZooKeeper Recipes),也可以称之为解决方案, 或者叫实现方案, 是指ZooKeeper的使用方法, 比如分布式的配置管理, Leader选举等

    Curator作为Apache ZooKeeper天生配套的组件。ZooKeeper的Java开发者自然而然的会选择它在项目中使用。

官网链接:http://curator.apache.org/

如何进行Zookeeper开源客户端框架Curator的简单使用

提供的功能组件

1.Framework 提供了一套高级的API, 简化了ZooKeeper的操作。 它增加了很多使用ZooKeeper开发的特性,可以处理ZooKeeper集群复杂的连接管理和重试机制

2.Client 是ZooKeeper客户端的一个替代品, 提供了一些底层处理和相关的工具方法

3.Recipes 实现了通用ZooKeeper的recipe, 该组件建立在Framework的基础之上

4.Utilities 各种工具类

5.Errors 异常处理, 连接, 恢复等.

6.Extensions curator-recipes包实现了通用的技巧,这些技巧在ZooKeeper文档中有介绍。为了避免是这个包(package)变得巨大, recipes/applications将会放入一个独立的extension包下。并使用命名规则curator-x-name.

Curator 编译好的类库被发布到Maven Center中。Curator包含几个artifact. 你可以根据你的需要在你的项目中加入相应的依赖。对于大多数开发者来说,引入curator-recipes这一个就足够了.

依赖:


    org.apache.curator
    curator-recipes
    2.6.0
 

    org.apache.curator
    curator-client
    2.6.0


    org.apache.curator
    curator-framework
    2.6.0

接下来是我实战中用到一些代码,(需要说明的是这里用到了zookeeper共享锁,按天执行的锁,并不是很完善,通过节点路径来控制)

示例代码:

@Component("userTask")
public class UserTask extends BaseTask {

    private static Logger logger = LoggerFactory.getLogger(UserTask .class);

    @Autowired
    private UserService userService;

    @Resource
    protected ZooKeeperClient zkClient;

    public static String LOCK_NODE = "/data/lockPs">

另外需要说明是用到了封装好的zookeeper的客户端,这里在介绍一下,

获取zookeeper的客户端:

//1.方式一
class ZooKeeperClient{
    private CuratorFramework client;

    public ZooKeeperClient(String zkAddress) {
        client = CuratorFrameworkFactory.newClient(zkAddress, new ExponentialBackoffRetry(1000, 3));
        client.getCuratorListenable().addListener(new NodeEventListener());
        client.start();
    }
    ...
}

//2.方式二
class ZooKeeperClient{
    private CuratorFramework client;

    public ZooKeeperClient(String connectString, int sessionTimeout, String parent) throws Exception {  
        zkClient = new CuratorZookeeperClient(connectString, sessionTimeout, sessionTimeout, zNodeWatcher, new ExponentialBackoffRetry(1000, Integer.MAX_VALUE));  
        zkClient.start();//must,but anytime before zookeeper operation  
        zkClient.blockUntilConnectedOrTimedOut(); //first connection should be successful  
    }  
    ...
}

关于如何进行Zookeeper开源客户端框架Curator的简单使用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


分享文章:如何进行Zookeeper开源客户端框架Curator的简单使用
本文链接:http://ybzwz.com/article/ijdigo.html