1
0
mirror of synced 2026-10-29 09:56:12 +08:00

auto commit

This commit is contained in:
yitter
2021-04-04 12:19:18 +08:00
parent 5ba22ca1e3
commit 1fc851a996

View File

@@ -79,37 +79,8 @@ QQ群:646049993
| 传统雪花算法 | 0.0045s | 0.053s | 0.556s |
| 雪花漂移算法 | 0.0015s | 0.012s | 0.113s |
## 效果
🟣 js Number 类型最大数值:9007199254740992,本算法在保持并发性能(5W+/0.01s)和最大64个 WorkerId(6bit)的同时,能用70年才到 js Number Max 值。
🟣 增加WorkerId位数到8bit(256节点)时,15年达到 js Number Max 值。
🟣 极致性能:500W/s~3000W/s。(所有测试数据均基于8代低压i7计算。)
#### 💎 生成的ID
默认配置:
```
WorkerIdBitLength = 6
SeqBitLength = 6
```
ID示例(基于默认配置):
```
129053495681099 (本算法运行1年)
387750301904971 (运行3年)
646093214093387 (运行5年)
1292658282840139 (运行10年)
9007199254740992 (js Number 最大值)
165399880288699493 (普通雪花算法生成的ID)
```
本算法生成的 ID 值,是 js Number 最大值的 1%-10%,是普通雪花算法值的千分之一,而计算能力却超过普通雪花算法。
## 适用范围
🔷小型、中型、大型需要全局唯一Id(不用Guid)的项目。
@@ -128,7 +99,48 @@ ID示例(基于默认配置):
🔶 允许时间回拨至本算法预设基数(参数可调)。
## 能用多久
## 💎 配置参数
<font color="#11aaff" size="5">❄</font> WorkerIdBitLength,决定 WorkerId 的最大值。
<font color="#11aaff" size="5">❄</font> SeqBitLength,决定每毫秒生成的ID个数。
<font color="#11aaff" size="5">❄</font> WorkerIdBitLength + SeqBitLength 必须小于12。
<font color="#11aaff" size="5">❄</font> WorkerId,最大值2^WorkerIdBitLength-1。
💍 默认配置值:
```
WorkerIdBitLength = 6
SeqBitLength = 6
```
## 💎 关于ID
💍 ID示例(基于默认配置):
```
129053495681099 (本算法运行1年)
387750301904971 (运行3年)
646093214093387 (运行5年)
1292658282840139 (运行10年)
9007199254740992 (js Number 最大值)
165399880288699493 (普通雪花算法生成的ID)
```
🟣 本算法生成的 ID 值,是 js Number 最大值的 1%-10%,是普通雪花算法值的千分之一,而计算能力却超过普通雪花算法。
🟣 js Number 类型最大数值:9007199254740992,本算法在保持并发性能(5W+/0.01s)和最大64个 WorkerId(6bit)的同时,能用70年才到 js Number Max 值。
### 长度估算
💍 每增加 1位 WorkerIdBitLength 或 SeqBitLength,生成的ID数字值将会乘以2,反之则除以2。
### 能用多久
🔵 在默认配置下,ID可用 71000 年不重复。
@@ -139,17 +151,6 @@ ID示例(基于默认配置):
🔵 以上所有工作节点,均拥有 50W/0.1s 瞬时处理速度。
#### 默认配置
💍 WorkerIdBitLength=6,能支持64个 WorkerId,编号0~63。
💍 可通过减少 WorkerIdBitLength 到1~4(为4时最大支持WorkerId为2^4=16个),以减少Id长度。
💍 SeqBitLength=6,能支持每秒并发5W请求时,平均处理速度不超过 0.005 s。(不同语言略有差别,最高性能不超过0.002s,平均不超过0.005s)
💍 可通过增加 SeqBitLength,支持更高的每秒并发数。默认配置能很高效地支持每秒 5W 并发请求,若要求更高,可适当增加 SeqBitLength 到 8~16,但这将增加Id长度。
## 集成建议
#### 💎 常规集成