雪花算法工具类
2026/5/23 3:11:30 网站建设 项目流程

雪花算法工具类
代码如下:

packageorg.jeecg.common.util;importcn.hutool.core.lang.Snowflake;importcn.hutool.core.net.NetUtil;importcn.hutool.core.util.IdUtil;importorg.apache.commons.lang3.StringUtils;/** * @Description:雪花算法生成分布式id,需要引入hutooljar包 * @Author: jeecg-boot * @Date: 2025-09-03 * @Version: V1.0 */publicclassSnowflakeUtil{// 终端IDprivatestaticfinalLongWORKER_ID=resolveWorkerId();// 数据中心IDprivatestaticfinalLongDATA_CENTER_ID=resolveDataCenterId();// 单例 Snowflake 实例(线程安全)privatestaticfinalSnowflakeSNOWFLAKE=newSnowflake(WORKER_ID,DATA_CENTER_ID,true);/** * 获取雪花ID */publicstaticsynchronizedStringgetSnowflake(){returnSNOWFLAKE.nextIdStr();//return IdUtil.getSnowflake(WORKER_ID,DATA_CENTER_ID).nextIdStr();}/** * 根据 Pod Name(HOSTNAME) 生成 WorkerId(保证同 Node 下 Pod 不同) */privatestaticLongresolveWorkerId(){Longid=null;try{// 使用 IP 地址计算Stringip=NetUtil.getLocalhostStr();returnLong.parseLong(ip.split("\\.")[3])&0x1F;}catch(Exceptione){id=0L;}returnid;}/** * 根据 Node IP 生成 DataCenterId(保证同一物理机一样) */privatestaticLongresolveDataCenterId(){Longid=null;try{// 使用 IP 地址计算Stringip=NetUtil.getLocalhostStr();id=(long)(ip.hashCode()&0x1F);}catch(Exceptione){id=0L;}returnid;}//测试publicstaticvoidmain(String[]args){Stringuuid=getSnowflake();System.out.println(uuid);}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询