1
0
mirror of synced 2026-02-19 03:17:56 +08:00

auto commit

This commit is contained in:
yitter
2021-04-06 11:04:11 +08:00
parent bdbfc4eedb
commit 2ee5c97b88

View File

@@ -59,7 +59,7 @@ QQ群646049993
## 新算法特点
<font color="green" size="5">✔</font> 整形数字随时间单调递增不一定连续长度更短用50年都不会超过 js Number类型最大值。默认配置 WorkerId 是6bit自增数是6bit
<font color="green" size="5">✔</font> 整形数字随时间单调递增不一定连续长度更短用50年都不会超过 js Number类型最大值。默认配置 WorkerId 是6bit序列数是6bit
<font color="green" size="5">✔</font> 速度更快是传统雪花算法的2-5倍0.1秒可生成50万个。i7笔记本默认算法配置6bit+6bit
@@ -106,13 +106,13 @@ QQ群646049993
* 本算法生成的ID由3部分组成沿用雪花算法定义
* +-------------------------+--------------+----------+
* | 1.相对基础时间的时间差 | 2.WorkerId | 3.自增数 |
* | 1.相对基础时间的时间差 | 2.WorkerId | 3.序列数 |
* +-------------------------+--------------+----------+
* +-------------------------+---- 6 bits ---+- 6 bits -+
*
* 第1部分时间差是生成ID时的系统时间减去 BaseTime 的总时间差(毫秒单位)。
* 第2部分WorkerId是区分不同机器或不同应用的唯一ID最大值由 WorkerIdBitLength默认6限定。
* 第3部分自增数,是每毫秒下的自增数,由参数中的 SeqBitLength默认6限定。
* 第3部分序列数,是每毫秒下的序列数,由参数中的 SeqBitLength默认6限定。
## 💎 ID示例
@@ -146,17 +146,17 @@ QQ群646049993
🔵 在支持 4096 个工作节点时ID可用 1120 年不重复。
## 💎 配置参数
## 💎 参数设置
<font color="#11aaff" size="5">❄</font> WorkerIdBitLengthWorkerId位长决定 WorkerId 的最大值默认值6取值范围 [1, 19],。
<font color="#11aaff" size="5">❄</font> WorkerIdBitLengthWorkerId位长决定 WorkerId 的最大值默认值6取值范围 [1, 19]实际上有些语言采用 无符号ushort(uint16) 类型接收该参数所以最大值是16如果是采用有符号short(int16)则最大值为15
<font color="#11aaff" size="5">❄</font> SeqBitLength自增数位长默认值6取值范围 [3, 21]建议不小于4决定每毫秒生成的 ID 个数。规则要求WorkerIdBitLength + SeqBitLength 不超过 22。
<font color="#11aaff" size="5">❄</font> SeqBitLength序列数位长默认值6取值范围 [3, 21]建议不小于4决定每毫秒生成的 ID 个数。规则要求WorkerIdBitLength + SeqBitLength 不超过 22。
<font color="#11aaff" size="5">❄</font> WorkerId机器码无默认值必须由外部设定最大值 2^WorkerIdBitLength-1。不同机器或不同应用不能相同本算法提供一个通过 redis 自动注册 WorkerId 的动态库详见“Tools\AutoRegisterWorkerId”。
<font color="#11aaff" size="5">❄</font> WorkerId机器码无默认值必须由外部设定最大值 2^WorkerIdBitLength-1(实际上根据语言的实现不同可能会限定在 65535 或 32766原理同 WorkerIdBitLength 的规则)。不同机器或不同应用不能相同,本算法提供一个通过 redis 自动注册 WorkerId 的动态库详见“Tools\AutoRegisterWorkerId”。
<font color="#11aaff" size="5">❄</font> MinSeqNumber最小自增默认值5取值范围 [5, MaxSeqNumber]每毫秒的前5个自增数对应编号是0-4是保留位其中1-4是时间回拨相应预留位0是手工新值预留位。
<font color="#11aaff" size="5">❄</font> MinSeqNumber最小序列默认值5取值范围 [5, MaxSeqNumber]每毫秒的前5个序列数对应编号是0-4是保留位其中1-4是时间回拨相应预留位0是手工新值预留位。
<font color="#11aaff" size="5">❄</font> MaxSeqNumber最大自增数,设置范围 [MinSeqNumber, 2^SeqBitLength-1]默认值0表示最大自增数取最大值2^SeqBitLength-1]不为0时用该设置值为最大自增数,一般不用设置最大自增除非多机共享WorkerId分段生成ID此时还要正确设置最小自增数)。
<font color="#11aaff" size="5">❄</font> MaxSeqNumber最大序列数,设置范围 [MinSeqNumber, 2^SeqBitLength-1]默认值0表示最大序列数取最大值2^SeqBitLength-1]不为0时用该设置值为最大序列数,一般不用设置最大序列除非多机共享WorkerId分段生成ID此时还要正确设置最小序列数)。
## 💎 常规集成