雪花算法工具类

雪花算法工具类 雪花算法工具类代码如下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_IDresolveWorkerId();// 数据中心IDprivatestaticfinalLongDATA_CENTER_IDresolveDataCenterId();// 单例 Snowflake 实例线程安全privatestaticfinalSnowflakeSNOWFLAKEnewSnowflake(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(){Longidnull;try{// 使用 IP 地址计算StringipNetUtil.getLocalhostStr();returnLong.parseLong(ip.split(\\.)[3])0x1F;}catch(Exceptione){id0L;}returnid;}/** * 根据 Node IP 生成 DataCenterId保证同一物理机一样 */privatestaticLongresolveDataCenterId(){Longidnull;try{// 使用 IP 地址计算StringipNetUtil.getLocalhostStr();id(long)(ip.hashCode()0x1F);}catch(Exceptione){id0L;}returnid;}//测试publicstaticvoidmain(String[]args){StringuuidgetSnowflake();System.out.println(uuid);}}