提交 7bab6fc4 编写于 作者: yitter's avatar yitter

auto commit

上级 be1b231f
......@@ -19,11 +19,11 @@ QQ群:646049993
❄ 这是优化的雪花算法(雪花漂移),它生成的ID更短、速度更快。
❄ 支持 k8s 等容器环境自动扩容(自动注册 WorkerId),可在单机或分布式环境生成唯一ID。
❄ 支持 k8s 等容器环境自动扩容(自动注册 WorkerId),可在单机或分布式环境生成数字型唯一ID。
❄ 原生支持 C#/Java/Go/Rust/C 等语言,并提供 PHP 扩展及 Python、Node.js 多线程安全调用动态库(FFI)。
❄ 这是计算机历史上最全面的雪花ID生成器。(目前还未发现更好的,或许你可以😀)
❄ 这是计算机历史上最全面的雪花ID生成器。(目前还未发现更好的,期待你的超越😀)
## 需求来源
......@@ -42,7 +42,7 @@ QQ群:646049993
💧 要在容器环境部署应用,支持水平复制、自动扩容。
💧 不想依赖 redis 的自增操作获得连续的主键ID,因为连续的ID存在数据安全风险。
💧 不想依赖 redis 的自增操作获得连续的主键ID,因为连续的ID存在业务数据安全风险。
💧 你希望系统运行 100 年以上。
......@@ -140,11 +140,11 @@ QQ群:646049993
## 💎 参数设置
***WorkerIdBitLength***,机器码位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 19],实际上有些语言采用 无符号ushort(uint16) 类型接收该参数,所以最大值是16,如果是采用有符号short(int16),则最大值为15。
***WorkerIdBitLength***,机器码位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 19],实际上有些语言采用 无符号 ushort(uint16) 类型接收该参数,所以最大值是16,如果是采用 有符号 short(int16),则最大值为15。
***WorkerId***,机器码,**最重要参数**,无默认值,必须由外部设定,默认条件下最大值63,理论最大值 2^WorkerIdBitLength-1(实际上不同实现语言可能会限定在 65535 或 32767,原理同 WorkerIdBitLength 的规则)。不同机器或不同应用实例不可相同,你可通过应用程序配置该值,也可通过调用外部服务获取值。针对自动注册WorkerId需求,本算法提供默认实现:通过 redis 自动注册 WorkerId 的动态库,详见“Tools\AutoRegisterWorkerId”。
***WorkerId***,机器码,**最重要参数**,无默认值,必须**全局唯一**,必须由外部设定,缺省条件下最大值63,理论最大值 2^WorkerIdBitLength-1(不同实现语言可能会限定在 65535 或 32767,原理同 WorkerIdBitLength 规则)。不同机器或不同应用实例**不能相同**,你可通过应用程序配置该值,也可通过调用外部服务获取值。针对自动注册WorkerId需求,本算法提供默认实现:通过 redis 自动注册 WorkerId 的动态库,详见“Tools\AutoRegisterWorkerId”。
***SeqBitLength***,序列数位长,默认值6,取值范围 [3, 21](建议不小于4),决定每毫秒生成的 ID 个数。规则要求:WorkerIdBitLength + SeqBitLength 不超过 22。
***SeqBitLength***,序列数位长,默认值6,取值范围 [3, 21](建议不小于4),决定每毫秒基础生成的 ID 个数。规则要求:WorkerIdBitLength + SeqBitLength 不超过 22。
***MinSeqNumber***,最小序列数,默认值5,取值范围 [5, MaxSeqNumber],每毫秒的前5个序列数对应编号0-4是保留位,其中1-4是时间回拨相应预留位,0是手工新值预留位。
......@@ -236,7 +236,7 @@ extern GoInt32 Validate(GoInt32 workerId);
❄ 首先,大厂们不但自己用雪花ID,而且还开源:[百度][81] | [美团][82] | [滴滴][83] | [雪花ID鼻祖-推特][80]
❄ 然而,大厂的雪花算法分为“经典算法”和“号段算法”两种,其中“号段算法”依赖网络或外部存储系统,不适合“非大厂”。
❄ 然而,大厂的雪花算法分为“经典算法”和“号段算法”两种,其中“号段算法”依赖网络或外部存储系统,不适合“非大厂”,且存在无法反应业务时序的缺点
❄ 至于其“经典算法”,在“ID长度和生成性能”方面,未做过优化,而这正式本算法——雪花漂移算法的核心所在。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册