zookeeper的javaAPI操作

创建空项目,新建一个module-maven

  <!--<repositories>
        <repostitory>
        <id>cloudera</id>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos/
        </url>
        </repostitory>
    </repositories> -->
    <dependencies>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.collections</groupId>
            <artifactId>google-collections</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!--java编译插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

IDEA旁边有一个刷新,或者run一下 下载需要的jar包。
**google-collections需要翻墙下载 github自行处理 **

在main-java 新建一个包 新建一个类

package zookeeper;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.TreeCache;
import org.apache.curator.framework.recipes.cache.TreeCacheEvent;
import org.apache.curator.framework.recipes.cache.TreeCacheListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.CreateMode;
import org.junit.Test;

public class zookeeper_api {
    @Test
    public void createZnode () throws  Exception{
        //定制重试策略 时间,次数
        RetryPolicy retryPolicy =new ExponentialBackoffRetry(1000,1);

        //get客户对象
        String connectionstr ="192.168.5.100,192.168.5.110,192.168.5.120";
        CuratorFramework client =CuratorFrameworkFactory.newClient(connectionstr,8000,8000,retryPolicy);

        client.start();
        client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello66666","world".getBytes());
        //修改数据
        //client.setData().forPath("/hello","hello".getBytes());
        //得到数据
//        byte[] bytes=client.getData().forPath("/hello");
//        System.out.println(new String(bytes));
        client.close();
    }

    public void wtachZnode() throws Exception{
        //定制重试策略 时间,次数
        RetryPolicy retryPolicy =new ExponentialBackoffRetry(1000,1);

        //get客户对象
        String connectionstr ="192.168.5.100,192.168.5.110,192.168.5.120";
        CuratorFramework client =CuratorFrameworkFactory.newClient(connectionstr,8000,8000,retryPolicy);

        client.start();

        TreeCache treeCache =new TreeCache(client,"/hello");
        //设置监听器和处理器过程
        treeCache.getListenable().addListener(new TreeCacheListener() {
            @Override
            public void childEvent(CuratorFramework client, TreeCacheEvent event) throws Exception {
                ChildData data =event.getData();
                if(data!=null){
                    switch (event.getType()){
                        case NODE_ADDED:
                            System.out.println("NODE_ADDED"+data.getPath()+"数据"+new String(data.getData()));
                            break;
                        case NODE_REMOVED:
                            System.out.println("NODE_REMOVED"+data.getPath()+"数据"+new String(data.getData()));
                            break;
                        case NODE_UPDATED:
                            System.out.println("NODE_updated"+data.getPath()+"数据"+new String(data.getData()));
                            break;
                    }
                }
            }
        });
        treeCache.start();
        Thread.sleep(100000000);

        client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath("/hello66666","world".getBytes());
        client.close();
    }

}


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值