| @@ -108,9 +108,9 @@ QQ群:646049993 | |||||
| ## 💎 ID示例 | ## 💎 ID示例 | ||||
| 🟣 本算法生成的 ID ,是一串整数,最多8字节。以下是基于默认配置生成的ID: | |||||
| 🟣 本算法生成的 ID ,是整数(占用空间最多8字节),以下是基于默认配置生成的ID: | |||||
| ``` | ``` | ||||
| 129053495681099 (本算法运行1年) | |||||
| 129053495681099 (运行1年) | |||||
| 387750301904971 (运行3年) | 387750301904971 (运行3年) | ||||
| 646093214093387 (运行5年) | 646093214093387 (运行5年) | ||||
| 1292658282840139 (运行10年) | 1292658282840139 (运行10年) | ||||
| @@ -118,7 +118,7 @@ QQ群:646049993 | |||||
| 165399880288699493 (普通雪花算法生成的ID) | 165399880288699493 (普通雪花算法生成的ID) | ||||
| ``` | ``` | ||||
| 🟣 本算法生成的 ID 值,是 js Number 最大值的 1%-10%,是普通雪花算法值的千分之一,而计算能力却超过普通雪花算法。 | |||||
| 🟣 本算法生成的 ID 值,是 js Number 最大值的 1%-10%,是普通雪花算法值的千分之一,而生成速度却超过普通雪花算法。 | |||||
| 🟣 js Number 类型最大数值:9007199254740992,本算法在保持并发性能(5W+/0.01s)和最大64个 WorkerId(6bit)的同时,能用70年才到 js Number Max 值。 | 🟣 js Number 类型最大数值:9007199254740992,本算法在保持并发性能(5W+/0.01s)和最大64个 WorkerId(6bit)的同时,能用70年才到 js Number Max 值。 | ||||
| @@ -131,6 +131,8 @@ QQ群:646049993 | |||||
| ### 能用多久 | ### 能用多久 | ||||
| 能用多久的解释,是指生成的ID数字,何时能增长到超过 long(有符号64位,8字节)最大值。 | |||||
| 🔵 在默认配置下,ID可用 71000 年不重复。 | 🔵 在默认配置下,ID可用 71000 年不重复。 | ||||
| 🔵 在支持 1024 个工作节点时,ID可用 4480 年不重复。 | 🔵 在支持 1024 个工作节点时,ID可用 4480 年不重复。 | ||||
| @@ -153,7 +155,7 @@ QQ群:646049993 | |||||
| ## 💎 常规集成 | ## 💎 常规集成 | ||||
| 1️⃣ 用单例模式调用。外部集成方使用更多的实例并行调用本算法,不会增加ID产出效能,因为本算法采用单线程模式生成ID。 | |||||
| 1️⃣ 用单例模式调用。外部集成方使用更多的实例并行调用本算法,不会增加ID产出效能,因为本算法采用单线程生成ID。 | |||||
| 2️⃣ 指定唯一的 WorkerId。必须由外部系统确保 WorkerId 的全局唯一性,并赋值给本算法入口方法。 | 2️⃣ 指定唯一的 WorkerId。必须由外部系统确保 WorkerId 的全局唯一性,并赋值给本算法入口方法。 | ||||
| @@ -167,10 +169,12 @@ QQ群:646049993 | |||||
| 7️⃣ 不要修改核心算法。本算法内部参数较多,逻辑较为复杂,在你尚未掌握核心逻辑时,请勿尝试修改核心代码且用于生产环境,除非通过大量细致、科学的测试验证。 | 7️⃣ 不要修改核心算法。本算法内部参数较多,逻辑较为复杂,在你尚未掌握核心逻辑时,请勿尝试修改核心代码且用于生产环境,除非通过大量细致、科学的测试验证。 | ||||
| 8️⃣ 应用域内配置策略相同。当系统运行一段时间后,项目需要从程序指定 WorkerId 转到自动注册 WorkerId 时,请确保同一应用域内所有在用实例采用一致的配置策略。 | |||||
| ## 💎 配置变更 | ## 💎 配置变更 | ||||
| 配置变更指是系统运行一段时间后,再变更运行参数(IdGeneratorOptions选项值),请注意: | |||||
| 配置变更指是系统运行一段时间后,再调整运行参数(IdGeneratorOptions 选项值),请注意: | |||||
| 🔴 1.最重要的一条原则是:BaseTime **只能往前**(比老值更小、距离现在更远)赋值,原因是往后赋值极大可能产生相同的时间戳。[**不推荐**在系统运行之后调整 BaseTime] | 🔴 1.最重要的一条原则是:BaseTime **只能往前**(比老值更小、距离现在更远)赋值,原因是往后赋值极大可能产生相同的时间戳。[**不推荐**在系统运行之后调整 BaseTime] | ||||