算法介绍
❄ 一个全新的雪花漂移算法,生成的 ID 更短、速度更快。
❄ 核心在于缩短 ID 长度的同时,具有极高瞬时并发处理量(保守值 50W/0.1s)。
❄ 原生支持 C#/Java/Go/Rust/C 等语言,并由 Rust 提供 PHP、Python、Node.js、Ruby 等语言多线程安全调用库(FFI)。如果你的应用有语言开发,基于本算法提供的逻辑实现,集成会更简单,逻辑会更一致。
❄ 支持 k8s 等容器化部署,自动注册 WorkerId。
❄ 可在单机或分布式环境中生成唯一 ID。
技术支持
开源地址 1:https://gitee.com/yitter/idgenerator
开源地址 2:https://github.com/yitter/idgenerator
需求来源
作为架构设计的你,想要解决数据库主键唯一的问题,特别是在分布式系统多数据库的时候。
你希望这个主键是用最少的存储空间,索引速度更快,Select、Insert 和 Update 更迅速。
你要考虑在分库分表(合库合表)时,主键值可直接使用,并能反映业务时序。
如果这样的主键值太长,超过前端 JS Number 类型最大值,须把 Long 型转换为 String 型,你会觉得有点沮丧。
尽管 Guid 能自增,但占用空间大,索引速度慢,你也不想用它。
应用实例可能超过 50 个,每个并发请求可达 10W/s。
在容器环境部署应用(水平扩展、自动伸缩)。
不想依赖 redis 的自增操作。
你希望系统运行 100 年以上。
<