| @@ -4,7 +4,35 @@ | |||||
| 用一种全新的雪花漂移算法,让ID更短、生成速度更快。 | 用一种全新的雪花漂移算法,让ID更短、生成速度更快。 | ||||
| 核心在于缩短ID长度的同时,还能保持每毫秒并发处理量(50W/0.1s),且能保持伸缩能力。 | 核心在于缩短ID长度的同时,还能保持每毫秒并发处理量(50W/0.1s),且能保持伸缩能力。 | ||||
| ## 功能说明 | |||||
| ## 需求来源 | |||||
| 1.作为架构设计的你,肯定想要解决数据库主键唯一的问题。 | |||||
| 2.你肯定希望这个主键是用最少的存储空间,索引速度更快的。 | |||||
| 3.你还会考虑在分库分表(合库合表)的时候,主键值要能直接使用,并能反映业务时序。 | |||||
| 4.如果这样的主键值太长,超过前端 JS Number 类型最大值,估计你会把 Long 型转换为 String 型,你肯定觉得有点不正常。 | |||||
| 5.自增Guid占用空间大,可能也不是你想要的。 | |||||
| 6.你希望系统能运行 100 年以上。 | |||||
| ## 传统雪花算法的问题 | |||||
| 1.生成的ID太长。 | |||||
| 2.依赖外部缓存系统。 | |||||
| 3.并发量不够。 | |||||
| 4.不能解决时间回拨问题。 | |||||
| 5.不支持后补生成前序ID。 | |||||
| ## 雪花漂移算法特点 | |||||
| 1.ID更短,是传统算法的几倍,用50年都不会超过 js Number类型最大值。(默认配置WorkerId是6bit,自增数是6bit) | 1.ID更短,是传统算法的几倍,用50年都不会超过 js Number类型最大值。(默认配置WorkerId是6bit,自增数是6bit) | ||||
| @@ -18,8 +46,6 @@ | |||||
| 6.不依赖任何外部缓存和数据库。(但WorkerId必须由外部指定) | 6.不依赖任何外部缓存和数据库。(但WorkerId必须由外部指定) | ||||
| 7.目前是C#版,很快会出java、php等版本。 | |||||
| ## 文件说明 | ## 文件说明 | ||||