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

本文介绍了一种新型的雪花漂移算法,它生成的ID更短、速度更快,支持多种语言,包括C#, Java, Go等,并在分布式环境中表现优秀。该算法解决了传统雪花算法的ID长度、并发量等问题,支持时间回拨处理和手动插入ID,且不依赖外部存储。适用于分布式项目和需要全局唯一ID的场景。" 133174154,19991288,快速入门:使用 Flask 构建 Python Web 应用,"['Python', 'Flask', 'Web框架', '前端开发', '后端开发']
摘要由CSDN通过智能技术生成

算法介绍

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

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值