首页>代码>SpringBoot2整合Apache Zookeeper集群管理、负载均衡功能代码>/zookeeper-demo1/src/main/java/com/test/config/ZookeeperConfig.java
package com.test.config; import javax.annotation.PostConstruct; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * zookeeper连接配置 * @author 程就人生 * @date 2020年1月13日 */ @Configuration public class ZookeeperConfig { //zookeeper连接地址 @Value("${zookeeper.register.address}") private String strZkAddress; //连接初始时间 @Value("${zookeeper.base.sleep.time.ms}") private int strBaseSleepTimeMs; //重试次数 @Value("${zookeeper.max.retries}") private int strMaxRetries; @Value("${zookeeper.register.node}") private String strManagerPath; @Value("${zookeeper.register.pathPrefix}") private String strPathPrefix; public static String managerPath; public static String pathPrefix; public static String zkAddress; private static int baseSleepTimeMs; private static int maxRetries; /** * 静态变量初始化,postContruct的作用 * 需要执行的方法,在完成依赖项注入后,执行任何初始化 * 这里用于从配置文件里获取配置,同时保证CuratorFramework只有一个实例 */ @PostConstruct private void init(){ zkAddress = strZkAddress; baseSleepTimeMs = strBaseSleepTimeMs; maxRetries = strMaxRetries; managerPath = strManagerPath; pathPrefix = strPathPrefix; } /** * 创建CuratorFramework实例,全局唯一 * @return CuratorFramework 实例 */ public static CuratorFramework createInstance(){ // 重试策略:第一次重试等待1s,第二次重试等待2s,第三次重试等待4s // 第一个参数:等待时间的基础单位,单位为毫秒 // 第二个参数:最大重试次数 ExponentialBackoffRetry retryPolicy = new ExponentialBackoffRetry(baseSleepTimeMs, maxRetries); // 第一个参数:zk的连接地址 // 第二个参数:重试策略 CuratorFramework curatorFramework = CuratorFrameworkFactory.newClient(zkAddress, retryPolicy); return curatorFramework; } /** * 非全局唯一,获取节点用,于上面的不同 * initMethod字段表示,start()方法在createInstance()方法执行完毕后执行 * @return CuratorFramework 实例 */ @Bean(value="zkClient",initMethod="start") public CuratorFramework createInstance1(){ // 重试策略:第一次重试等待1s,第二次重试等待2s,第三次重试等待4s // 第一个参数:等待时间的基础单位,单位为毫秒 // 第二个参数:最大重试次数 ExponentialBackoffRetry retryPolicy = new ExponentialBackoffRetry(baseSleepTimeMs, maxRetries); // 第一个参数:zk的连接地址 // 第二个参数:重试策略 CuratorFramework curatorFramework = CuratorFrameworkFactory.newClient(zkAddress, retryPolicy); return curatorFramework; } }


xianyu091012 LV5
2024年11月18日
fellowfun LV12
2023年9月1日
心如止水 LV17
2023年8月15日
yzshabzbbdvw LV4
2023年6月3日
lironggang LV38
2023年3月28日
zxc131313 LV12
2023年2月2日
bibibi234 LV1
2022年12月5日
xiaoyuer2 LV8
2022年11月20日
Hachi6 LV13
2022年9月19日
别胡思乱想啦
2022年6月18日
暂无贡献等级