首页>代码>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; } }
最近下载更多