比雪花算法更好用的 ID 生成算法(单机或分布式唯一 ID)

算法介绍

❄ 一个全新的雪花漂移算法,生成的 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 年以上。

传统算法问题

你可能感兴趣的:(程序员,程序人生,java,分布式)