ID分配器
在前面讲到自建帐号体系需要依赖:ID分配器
那么ID分配器具有有什么要求呢?简单列举如下:
1、非从1递增
2、全局唯一
3、ID分配不连续
4、方便记忆,可以理解为QQ号
怎么解决
有了问题后,先看看业内是怎么解决ID分配的呢,罗列如下:
1、数据库自增id,
2、批量生成,然后存储起来,依次取
3、uuid/guid,但生成id很长64bit放不下,如果折半成64bit可能会出现id重复。
4、类snowflake算法,生成的ID太长不方便记忆
最终解决方案
1、自实现使用随机自增ID,可能存在ID空洞
2、为了避免ID空洞,将原一个ID序列分为9个序列