From a0b885a6f35121b63522c48d8ccf1a44a0bf9603 Mon Sep 17 00:00:00 2001 From: zhouzj Date: Thu, 11 Mar 2021 21:11:09 +0800 Subject: [PATCH] editreadme --- README.md | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6702afa..532da4d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,35 @@ 用一种全新的雪花漂移算法,让ID更短、生成速度更快。 核心在于缩短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) @@ -18,8 +46,6 @@ 6.不依赖任何外部缓存和数据库。(但WorkerId必须由外部指定) -7.目前是C#版,很快会出java、php等版本。 - ## 文件说明 -- GitLab