提交 2ee5c97b 编写于 作者: yitter's avatar yitter

auto commit

上级 bdbfc4ee
......@@ -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> WorkerIdBitLength,WorkerId位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 19],。
<font color="#11aaff" size="5"></font> WorkerIdBitLength,WorkerId位长,决定 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(此时还要正确设置最小序列数)。
## 💎 常规集成
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册