diff --git a/mallinkService/src/main/java/com/iformall/common/IdWorker.java b/mallinkService/src/main/java/com/iformall/common/IdWorker.java index 2074260c6..f2c0fa34a 100644 --- a/mallinkService/src/main/java/com/iformall/common/IdWorker.java +++ b/mallinkService/src/main/java/com/iformall/common/IdWorker.java @@ -21,7 +21,7 @@ public class IdWorker { private final long twepoch = 1489111610226L; /** 机器id所占的位数 */ - private final long workerIdBits = 9L; + private final long workerIdBits = 5L; /** 数据标识id所占的位数 */ private final long dataCenterIdBits = 5L; @@ -77,7 +77,7 @@ public class IdWorker { e.printStackTrace(); } String[] ipArray = ipAddr.split("\\."); - Long workerId = Long.valueOf(ipArray[3]) & maxWorkerId; /// Long.valueOf(ipArray[2]) << 8 | + Long workerId = (Long.valueOf(ipArray[3]) % maxWorkerId) & maxWorkerId; /// Long.valueOf(ipArray[2]) << 8 | String pName = ManagementFactory.getRuntimeMXBean().getName(); Long dataCenterId = Long.valueOf(pName.split("@")[0]) & maxDataCenterId;