Browse Source

[雪花算法][修改]:调整雪花算法为18位

release_toaliyun_real
Stormeye Wu 7 years ago
parent
commit
0764ccb62d
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      mallinkService/src/main/java/com/iformall/common/IdWorker.java

+ 2
- 2
mallinkService/src/main/java/com/iformall/common/IdWorker.java View File

@@ -21,7 +21,7 @@ public class IdWorker {
private final long twepoch = 1489111610226L; private final long twepoch = 1489111610226L;


/** 机器id所占的位数 */ /** 机器id所占的位数 */
private final long workerIdBits = 9L;
private final long workerIdBits = 5L;


/** 数据标识id所占的位数 */ /** 数据标识id所占的位数 */
private final long dataCenterIdBits = 5L; private final long dataCenterIdBits = 5L;
@@ -77,7 +77,7 @@ public class IdWorker {
e.printStackTrace(); e.printStackTrace();
} }
String[] ipArray = ipAddr.split("\\."); 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(); String pName = ManagementFactory.getRuntimeMXBean().getName();
Long dataCenterId = Long.valueOf(pName.split("@")[0]) & maxDataCenterId; Long dataCenterId = Long.valueOf(pName.split("@")[0]) & maxDataCenterId;




Loading…
Cancel
Save