diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java index 92d8502d1..00fbadf1d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/SqBookmarkTest.java @@ -1,6 +1,7 @@ package com.ruoyi.web.test.controller; +import com.github.wujun234.uid.UidGenerator; import com.ruoyi.bookmark.mapper.SqMenuMapper; import com.ruoyi.bookmark.service.ISqUserTagService; import com.ruoyi.web.controller.yunbookmark.SqBookmarkController; @@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import javax.annotation.Resource; import java.util.List; import java.util.Map; @@ -79,4 +81,7 @@ public class SqBookmarkTest extends BaseSpringBootTest{ + + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java new file mode 100644 index 000000000..7b155301a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java @@ -0,0 +1,37 @@ +package com.ruoyi.web.test.controller; + +import com.github.wujun234.uid.UidGenerator; +import org.junit.Test; + +import javax.annotation.Resource; + +/** + * @Auther: Wang + * @Date: 2020/09/09 21:21 + * 功能描述: + */ +public class UIDTest extends BaseSpringBootTest{ + + + @Resource + private UidGenerator defaultUidGenerator; + @Resource + private UidGenerator cachedUidGenerator; + + @Test + public void testSerialGenerate() { + // Generate UID + long cachedUidGeneratoruid = cachedUidGenerator.getUID(); + long defaultUidGeneratoruid = defaultUidGenerator.getUID(); + + System.out.println("cachedUidGeneratoruid:"+cachedUidGeneratoruid); + System.out.println("cachedUidGeneratoruid解密:"+cachedUidGenerator.parseUID(cachedUidGeneratoruid)); + System.out.println("defaultUidGeneratoruid:"+defaultUidGeneratoruid); + System.out.println("defaultUidGeneratoruid解密:"+cachedUidGenerator.parseUID(defaultUidGeneratoruid)); + + // Parse UID into [Timestamp, WorkerId, Sequence] + // {"UID":"450795408770","timestamp":"2019-02-20 14:55:39","workerId":"27","sequence":"2"} +// System.out.println(cachedUidGenerator.parseUID(uid)); + + } +} diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index bb704162c..032b12c23 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -125,3 +125,24 @@ xss: excludes: /system/notice/* # 匹配链接 urlPatterns: /system/*,/monitor/*,/tool/* + + + +# 关于UID比特分配的建议 +# 对于并发数要求不高、期望长期使用的应用, 可增加timeBits位数, 减少seqBits位数. 例如节点采取用完即弃的WorkerIdAssigner策略, 重启频率为12次/天, 那么配置成{"workerBits":23,"timeBits":31,"seqBits":9}时, 可支持28个节点以整体并发量14400 UID/s的速度持续运行68年. +# +# 对于节点重启频率频繁、期望长期使用的应用, 可增加workerBits和timeBits位数, 减少seqBits位数. 例如节点采取用完即弃的WorkerIdAssigner策略, 重启频率为24*12次/天, 那么配置成{"workerBits":27,"timeBits":30,"seqBits":6}时, 可支持37个节点以整体并发量2400 UID/s的速度持续运行34年. + + #百度UID + +uid: + timeBits: 31 # 时间位, 默认:30 + workerBits: 23 # 机器位, 默认:16 + seqBits: 9 # 序列号, 默认:7 + epochStr: "2020-09-01" # 初始时间, 默认:"2019-02-20" + enableBackward: true # 是否容忍时钟回拨, 默认:true + maxBackwardSeconds: 1 # 时钟回拨最长容忍时间(秒), 默认:1 + CachedUidGenerator: # CachedUidGenerator相关参数 + boostPower: 3 # RingBuffer size扩容参数, 可提高UID生成的吞吐量, 默认:3 + paddingFactor: 50 # 指定何时向RingBuffer中填充UID, 取值为百分比(0, 100), 默认为50 + #scheduleInterval: 60 # 默认:不配置此项, 即不实用Schedule线程. 如需使用, 请指定Schedule线程时间间隔, 单位:秒 diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index c49fe967d..8982a72e8 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -149,6 +149,12 @@ commons-beanutils 1.9.4 + + + com.github.wujun234 + uid-generator-spring-boot-starter + 1.0.2.RELEASE + diff --git a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqUserTagServiceImpl.java b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqUserTagServiceImpl.java index 5783cbcb2..edfae764c 100644 --- a/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqUserTagServiceImpl.java +++ b/ruoyi-yunbookmark/src/main/java/com/ruoyi/bookmark/service/impl/SqUserTagServiceImpl.java @@ -3,12 +3,15 @@ package com.ruoyi.bookmark.service.impl; import java.util.List; import java.util.Map; +import com.github.wujun234.uid.UidGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.bookmark.mapper.SqUserTagMapper; import com.ruoyi.bookmark.domain.SqUserTag; import com.ruoyi.bookmark.service.ISqUserTagService; +import javax.annotation.Resource; + /** * 标签管理Service业务层处理 * @@ -22,6 +25,8 @@ public class SqUserTagServiceImpl implements ISqUserTagService private SqUserTagMapper sqUserTagMapper; + + /** * 批量减少用戶 标签引用的 数量 -1 *