1
0
mirror of synced 2026-02-26 23:07:58 +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个 WorkerId6bit的同时能用70年才到 js Number Max 值。
🟣 增加WorkerId位数到8bit256节点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个 WorkerId6bit的同时能用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长度。
## 集成建议
#### 💎 常规集成