pull/4/head
zhouyu 9 months ago
parent 289e07bcb9
commit b2dca179b5

@ -15,17 +15,31 @@ import javax.annotation.PostConstruct;
/**
* ZK
*/
// 使用@Component注解将该类标记为Spring容器中的一个组件方便Spring进行管理和依赖注入等操作
@Component
// 使用lombok的@Slf4j注解用于自动生成日志相关代码便于在类中记录各种日志信息
@Slf4j
public class WorkerIDSenquence {
// 使用@Value注解从Spring配置文件或环境变量等配置源中读取名为"zk.host"的配置值,并注入到该变量中,
// 此变量表示Zookeeper服务器的主机地址用于后续连接Zookeeper
@Value("${zk.host}")
private String ZkHost ;
// 定义一个静态的常量字符串表示在Zookeeper中的节点路径用于存放与雪花算法工作ID相关的信息
// 这里的路径是固定的后续操作会基于此路径在Zookeeper中进行节点的创建、查询等操作
private static final String ZK_PATH = "/snowflake/workID";
// 定义一个静态的CuratorFramework类型的变量CuratorFramework是用于操作Zookeeper的客户端框架
// 在这里用于与Zookeeper服务器进行交互比如创建节点、查询节点等此处先声明后续在初始化方法中进行实例化并启动
private static CuratorFramework client;
/**
* 使@PostConstructZookeeper
* CuratorFrameworkFactoryZookeeper105000
* ZookeeperZK_PATH
* CreateMode.PERSISTENT
*/
@PostConstruct
void initZKNode() throws Exception {
client = CuratorFrameworkFactory.newClient(ZkHost,new RetryNTimes(10, 5000));
@ -37,6 +51,13 @@ public class WorkerIDSenquence {
}
}
/**
* ID
* hostname"snowflake_"
* ZookeeperZK_PATHCreateMode.EPHEMERAL_SEQUENTIAL
*
* ID
*/
public long getSequence(String hostname) throws Exception {
if(StringUtils.isBlank(hostname)){
hostname = "snowflake_";

Loading…
Cancel
Save