Curator api的使用

zookeeper在java上的客户端用起来非常繁琐,而且watcher只能触发一次。所以有了ZkClient和Curator。Curator特点就是可以使用Fluent风格来写代码。

今天把Curator的api简单的用了一下。

1.curator对节点的操作  需要curator-framework Jar包

<dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.8.0</version>
 </dependency>
 (String[] args) {
        String servers = RetryPolicy retryPolicy = ExponentialBackoffRetry()CuratorFramework curator = CuratorFrameworkFactory.()
                .connectString(servers)
                .retryPolicy(retryPolicy)
                .sessionTimeoutMs()
                        .build()curator.start(){
            curator.create().creatingParentsIfNeeded().inBackground(BackgroundCallback() {
                (CuratorFramework curatorFrameworkCuratorEvent curatorEvent) Exception {
                    System..println(curatorEvent)System..println(curatorFramework)}
            }).forPath(.getBytes())} (Exception e) {
            e.printStackTrace()}
    }

    MyCallback BackgroundCallback {

        (CuratorFramework curatorFrameworkCuratorEvent curatorEvent) Exception {
            System..println(curatorEvent)System..println(curatorFramework)}
    }


2.对节点以及子节点的监听 需要curator-recipes  jar报

org.apache.curatorcurator-recipes2.8.0
(String[] args) {
        String servers = RetryPolicy retryPolicy = ExponentialBackoffRetry()CuratorFramework curator = CuratorFrameworkFactory.(serversretryPolicy)curator.start(){
            PathChildrenCache childCache = PathChildrenCache(curator)childCache.start()childCache.getListenable().addListener(PathChildrenCacheListener() {
                (CuratorFramework curatorFrameworkPathChildrenCacheEvent pathChildrenCacheEvent) Exception {
                    System..println()System..println(pathChildrenCacheEvent.toString())}
            })TimeUnit..sleep()} (Exception e) {
            e.printStackTrace()}
    }


你可能感兴趣的:(java,zookeeper,paxos,curator,curator,zkclient,分布式一致性)