完成单元测试 #11

Merged
ZhouXY108 merged 25 commits from :1.x.x into 1.x.x 2025-01-01 20:47:38 +08:00
8 changed files with 1142 additions and 78 deletions
Showing only changes of commit 1b2978fb06 - Show all commits

View File

@@ -21,9 +21,17 @@ import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import com.google.common.annotations.Beta;
@Beta
/**
* ID 生成器
*
* <p>
* 生成 UUID 和 修改版雪花IDSeata 版本)
* </p>
*
* @see UUID
* @see IdWorker
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108}">ZhouXY</a>
*/
public class IdGenerator {
// ===== UUID =====

View File

@@ -24,7 +24,26 @@ import java.util.concurrent.atomic.AtomicLong;
import xyz.zhouxy.plusone.commons.exception.system.NoAvailableMacFoundException;
/**
* Seata 提供的修改版雪花ID。
* <p>
* 大体思路为:
* <ol>
* <li>每个机器线程安全地生成序列前面加上机器的id这样就不会与其它机器的id相冲突。</li>
* <li>时间戳作为序列的“预留位”,它更像是应用启动时最开始的序列的一部分,在一个时间戳里生成 4096 个 id 之后,直接生成下一个时间戳的 id。</li>
* </ol>
* </p>
* <p>
* 详情见以下介绍:
* <ul>
* <li><a href="https://seata.apache.org/zh-cn/blog/seata-analysis-UUID-generator/">Seata基于改良版雪花算法的分布式UUID生成器分析</a></li>
* <li><a href="https://seata.apache.org/zh-cn/blog/seata-snowflake-explain">关于新版雪花算法的答疑</a></li>
* <li><a href="https://juejin.cn/post/7264387737276203065">在开源项目中看到一个改良版的雪花算法,现在它是你的了。</a></li>
* <li><a href="https://juejin.cn/post/7265516484029743138">关于若干读者,阅读“改良版雪花算法”后提出的几个共性问题的回复。</a></li>
* </ul>
* </p>
* @author <a href="http://zhouxy.xyz:3000/ZhouXY108}">ZhouXY</a>
*/
public class IdWorker {
/**

View File

@@ -18,12 +18,9 @@ package xyz.zhouxy.plusone.commons.util;
import java.util.concurrent.TimeUnit;
import com.google.common.annotations.Beta;
/**
* Twitter_Snowflake
* Twitter 版雪花算法
*/
@Beta
public class SnowflakeIdGenerator {
// ==============================Fields===========================================