auto commit
This commit is contained in:
83
README.md
83
README.md
@@ -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长度。
|
||||
|
||||
|
||||
## 集成建议
|
||||
|
||||
#### 💎 常规集成
|
||||
|
||||
Reference in New Issue
Block a user