[monitor] 支持网站监控类型,降低雪花算法UUID最大值解决ts json解析大数问题
This commit is contained in:
@@ -10,7 +10,7 @@ public class SnowFlakeIdGenerator {
|
||||
private final static SnowFlakeIdWorker ID_WORKER;
|
||||
|
||||
static {
|
||||
ID_WORKER = new SnowFlakeIdWorker(1, 0);
|
||||
ID_WORKER = new SnowFlakeIdWorker(0);
|
||||
}
|
||||
|
||||
public static long generateId() {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.usthe.common.util;
|
||||
|
||||
/**
|
||||
* 雪花算法生成器实例
|
||||
* 注意 由于前端JS TS 在json解析大数会造成精度丢失 UUID 不能超过 9007199254740991(16位)
|
||||
* @author from https://www.cnblogs.com/vchar/p/14857677.html
|
||||
* @date 2021/11/10 10:58
|
||||
*/
|
||||
@@ -15,12 +16,12 @@ public class SnowFlakeIdWorker {
|
||||
/**
|
||||
* 机器 ID 所占的位数
|
||||
*/
|
||||
private static final long WORKER_ID_BITS = 5L;
|
||||
private static final long WORKER_ID_BITS = 2L;
|
||||
|
||||
/**
|
||||
* 数据标识 ID 所占的位数
|
||||
*/
|
||||
private static final long DATA_CENTER_ID_BITS = 5L;
|
||||
private static final long DATA_CENTER_ID_BITS = 4L;
|
||||
|
||||
/**
|
||||
* 支持的最大机器ID,最大为31
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.usthe.common.util;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* @author tom
|
||||
* @date 2021/12/3 13:28
|
||||
*/
|
||||
class SnowFlakeIdGeneratorTest {
|
||||
|
||||
@Test
|
||||
void generateId() {
|
||||
// 注意 由于前端JS TS 在json解析大数会造成精度丢失 UUID 不能超过 9007199254740991(16位)
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
long id = SnowFlakeIdGenerator.generateId();
|
||||
Assertions.assertTrue(id < 9007199254740991L);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user