背景
之前开发的分布式唯一id比较简陋。这段时间重新设计优化,变成一个独立的项目X-UID。这里记录下设计优化的一些东西
基本算法还是基于snowflake。因为需求就是要一个long型数字,snowflake算法简单高效。
snowflake简单介绍
算法生成的id结构图:
说明:
- 1-bit:符号位,一般不设置,默认为0
- 41-bit:时间戳,大约能用69年
- 10-bit:工作机器id,最大支持1024个workerId
- 12-bit:序列号,毫秒内的自增序列。这也决定了其QPS的上限为400w/s这个数量级