5.zookeeper集成Java项目curator客户端
2022/1/26 1:04:20
本文主要是介绍5.zookeeper集成Java项目curator客户端,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建了一个SpringBoot
项目,引入pom
依赖
<!--zookeeper--> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>
配置application.yml
属性
curator: #重试次数 maxRetries: 3 #重试间隔时间 baseSleepTimeMs: 1000 # zookeeper 地址 多个可用逗号分隔127.0.0.1:2181,127.0.0.1:2182 connectString: 192.168.106.128:2181 # session超时时间 sessionTimeoutMs: 60000 # 连接超时时间 connectionTimeoutMs: 5000 path: /distributed-lock
配置注入Bean
package com.example.zkConfig; import lombok.Data; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.RetryNTimes; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Data @Configuration public class ZookeeperConfig { @Value("${curator.maxRetries}") private int maxRetries; @Value("${curator.baseSleepTimeMs}") private int baseSleepTimeMs; @Value("${curator.connectString}") private String connectString; @Value("${curator.sessionTimeoutMs}") private int sessionTimeoutMs; @Value("${curator.connectionTimeoutMs}") private int connectionTimeoutMs; @Value("${curator.path}") private String path; //调用start初始化方法 @Bean(initMethod = "start") public CuratorFramework curatorFramework(){ return CuratorFrameworkFactory.newClient( this.connectString, this.sessionTimeoutMs, this.connectionTimeoutMs, new RetryNTimes(this.maxRetries,this.connectionTimeoutMs) ); } }
测试文件ZkTest
一些基本操作
package com.example; import org.apache.curator.framework.CuratorFramework; import org.apache.zookeeper.CreateMode; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class ZkTest { @Autowired private CuratorFramework curatorFramework; @Test public void test1() throws Exception { //创建持久节点 // String s = curatorFramework.create().forPath("/test-node1"); // 创建临时序号节点 String s = curatorFramework.create().withMode(CreateMode.EPHEMERAL_SEQUENTIAL).forPath("/test-node2", "abc".getBytes()); System.out.println(s); } @Test public void test2() throws Exception { //获取节点的数据 byte[] bytes = curatorFramework.getData().forPath("/test-node1"); System.out.println(new String(bytes)); } @Test public void test3() throws Exception { //修改节点的数据 curatorFramework.setData().forPath("/test-node1","你好".getBytes()); //获取节点的数据 byte[] bytes = curatorFramework.getData().forPath("/test-node1"); System.out.println(new String(bytes)); } @Test public void test4() throws Exception { //创建若父节点不存在则先创建父节点 String s = curatorFramework.create().creatingParentsIfNeeded().forPath("/node-parent/node-1"); System.out.println(s); } @Test public void test5() throws Exception { //删除父节点 子节点存在也一并删除 curatorFramework.delete().guaranteed().deletingChildrenIfNeeded().forPath("/node-parent"); } }
这篇关于5.zookeeper集成Java项目curator客户端的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解