一、分布式id要求:
生成规则:
1.全局唯一
2.单调递增或趋势递增
3.信息安全
生成系统性能:
1.高可用
2.低延迟
3.高QPS
二、几种方式对比:
UUID:
不太合适,无序,长,性能不好(36位)
自增ID:
不太合适,小厂单机可以,步长为1;但对于大厂集群分布式,不合适 ,
1.如果五台机器步长为5集群即可,但水平扩展不好,难维护,如果100台,要加一台,就有问题了;
2.高并发下性能也不太好,不能满足高QPS。
时间串:
年月日时分秒毫秒三位,但可能有并发现象。
redis集群:
可以满足高QPS,但需要维护一个redis集群,不合适,只是为了要个唯一编号而已。
雪花算法:
注:因为世界上每一片雪花都不一样,所以叫雪花算法。
1.同一机器同一时间戳内,理想每秒2^12 * 1000 = 409.6万,实际效率每秒26万