1
0
mirror of synced 2025-12-16 18:18:10 +08:00

auto commit

This commit is contained in:
yitter
2022-09-05 11:56:36 +08:00
parent 02f2d9f24d
commit 496dc851b5

View File

@@ -1,11 +1,17 @@
# 雪花算法里最好用的主键ID生成工具
## 💎 最佳实践(置顶)
## 技术支持
针对大家再测试过程中经常出现的性能问题以下给出3组最佳实践配置
开源地址https://github.com/yitter/IdGenerator
❄ 如果生成ID速度要求不超过5W/s不用修改任何配置参数
❄ 如果生成ID速度要求超过5W/s低于50W推荐修改SeqBitLength=10或更大
❄ 如果生成ID速度要求超过50W/s接近500W推荐修改SeqBitLength=14或更大TopOverCostCount=5000
总之,增加 SeqBitLength 会让性能更高,但生成的 ID 也会更长。
QQ群646049993
## 💎 算法介绍
@@ -134,20 +140,6 @@ QQ群646049993
🔵 在支持 4096 个工作节点时ID可用 1120 年不重复。
### 补充说明
❄ 默认算法每个时间戳开始生成的ID是奇数。
❄ 可以把ID右移 WorkerIdBitLength+SeqBitLength得到时间戳。
## 性能说明
❄ 在生成速度不超过 5W个/秒 的情况下,无须修改 SeqBitLength。
❄ 超过5W不超过50W改 SeqBitLength 为10。
❄ 超过 50W改为 12~16。
## 💎 参数设置
***WorkerIdBitLength***,机器码位长,决定 WorkerId 的最大值,**默认值6**,取值范围 [1, 19],实际上有些语言采用 无符号 ushort (uint16) 类型接收该参数所以最大值是16如果是采用 有符号 short (int16)则最大值为15。
@@ -264,6 +256,13 @@ extern GoInt32 Validate(GoInt32 workerId);
| 🌲 D | [查看示例][72] |
## 技术支持
开源地址https://github.com/yitter/IdGenerator
QQ群646049993
[comment]: <> ( ## 为什么用雪花ID)
[comment]: <> ( ❄ 因为大厂也在用,推特、百度、美团、滴滴等等。)
[comment]: <> ( ❄ 雪花ID是走向分布式架构的垫脚石如果只会Guid和数据库自增怎敢说会分布式系统架构。)