|
|
@@ -1,5 +1,6 @@ |
|
|
|
# 雪花算法里最好用的主键ID新算法
|
|
|
|
|
|
|
|
|
|
|
|
## 💎 技术支持
|
|
|
|
|
|
|
|
开源地址1:https://github.com/yitter/idgenerator
|
|
|
@@ -8,37 +9,27 @@ |
|
|
|
|
|
|
|
QQ群:646049993
|
|
|
|
|
|
|
|
## 💎 基本介绍
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 一个全新的雪花算法(雪花漂移),生成的ID更短、速度更快。
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 原生支持 C#/Java/Go/Rust/C 等语言,并提供 PHP、Python、Node.js、Ruby 等语言多线程安全调用库(FFI)。
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 支持 k8s 等容器环境自动扩容(自动注册 WorkerId)。
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 可在单机或分布式环境中生成唯一ID。
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 这是计算机历史上最全面的雪花ID生成器,未来会超越自己。(目前还未发现更好的,或许你可以😀)
|
|
|
|
|
|
|
|
|
|
|
|
## 为什么用雪花ID?
|
|
|
|
|
|
|
|
🌀 因为大厂都在用,推特、百度、美团、滴滴等等。
|
|
|
|
❄ 因为大厂都在用,推特、百度、美团、滴滴等等。
|
|
|
|
|
|
|
|
🌀 大厂们不但自己用,而且开源:[百度][81] | [美团][82] | [滴滴][83] | [雪花ID鼻祖-推特][80]。
|
|
|
|
❄ 雪花ID是走向分布式架构的垫脚石,如果只会Guid和数据库自增,怎敢说会分布式系统架构。
|
|
|
|
|
|
|
|
🌀 雪花ID是走向分布式架构的垫脚石,如果只会Guid和数据库自增,怎敢说会分布式系统架构。
|
|
|
|
❄ 雪花ID适合小项目、大项目、超级大项目。
|
|
|
|
|
|
|
|
🌀 雪花ID适合小项目、大项目、超级大项目。
|
|
|
|
|
|
|
|
## 💎 本算法介绍
|
|
|
|
|
|
|
|
## 为什么不用大厂开源?
|
|
|
|
<font color="#11aaff" size="5">❄</font> 这是一个优化的雪花算法(雪花漂移),生成的ID更短、速度更快。
|
|
|
|
|
|
|
|
❄ 简而言之,大厂的雪花算法分为“经典算法”和“号段算法”两种,其中“号段算法”依赖网络或外部存储系统,不适合“非大厂”,另外“号段算法”存在业务表达上的缺陷。
|
|
|
|
<font color="#11aaff" size="5">❄</font> 原生支持 C#/Java/Go/Rust/C 等语言,并提供 PHP、Python、Node.js、Ruby 等语言多线程安全调用库(FFI)。
|
|
|
|
|
|
|
|
❄ 至于大厂的“经典算法”,其实就是推特雪花算法的特定语言翻译,未曾见过大厂在“ID长度和生成性能”方面,做过极致的优化,而这正式本算法——雪花漂移算法的核心所在。
|
|
|
|
<font color="#11aaff" size="5">❄</font> 支持 k8s 等容器环境自动扩容(自动注册 WorkerId)。
|
|
|
|
|
|
|
|
❄ 大厂开源都是优先为己所用,都不支持多语言,而这正式本算法——雪花漂移算法送给大家的福利,无论你是想学语言入门还是想学(或想用)雪花ID,这里都能让你有所收获。
|
|
|
|
<font color="#11aaff" size="5">❄</font> 可在单机或分布式环境中生成唯一ID。
|
|
|
|
|
|
|
|
<font color="#11aaff" size="5">❄</font> 这是计算机历史上最全面的雪花ID生成器,未来会超越自己。(目前还未发现更好的,或许你可以😀)
|
|
|
|
|
|
|
|
|
|
|
|
## 需求来源
|
|
|
@@ -240,6 +231,15 @@ extern __declspec(dllexport) GoInt32 Validate(GoInt32 workerId); |
|
|
|
| 🌲 D | [查看示例][72] | [查看示例][73] |
|
|
|
|
|
|
|
|
|
|
|
|
## 为什么不用大厂的?
|
|
|
|
|
|
|
|
❄ 首先,大厂们不但自己用,而且开源:[百度][81] | [美团][82] | [滴滴][83] | [雪花ID鼻祖-推特][80]。
|
|
|
|
|
|
|
|
❄ 然而,大厂的雪花算法分为“经典算法”和“号段算法”两种,其中“号段算法”依赖网络或外部存储系统,不适合“非大厂”。
|
|
|
|
|
|
|
|
❄ 至于其“经典算法”,在“ID长度和生成性能”方面,未做过优化,而这正式本算法——雪花漂移算法的核心所在。
|
|
|
|
|
|
|
|
|
|
|
|
[1]: https://github.com/yitter/idgenerator/tree/master/%23.NET
|
|
|
|
[2]: https://github.com/yitter/idgenerator/tree/master/Java
|
|
|
|
[3]: https://github.com/yitter/idgenerator/tree/master/Go
|
|
|
|