分布式ID生成学习

唯一 && 趋势有序

数据库auto_increment,多个写库时,每个写库不同的初始值和相同的步长(A(0,2)B(1,2))

缺点:非绝对递增,写库压力大

DB只保存序列最大值,由ID生成器批量派发,防止单点,增加一个影子服务,vip + keepalive

缺点:可能出现空洞不连续,无法水平扩展

本地生成UUID

缺点:时序性无法保证,过长,作为主键效率太低

毫秒数

缺点:高并发会出现重复

snowflake

一个long型的ID,使用其中41bit作为毫秒数,10bit作为机器编号,12bit作为毫秒内序列号

毫秒数 + 业务线 + 机房 + 机器 + 毫秒内序列号 + 预留位

原文地址:https://www.cnblogs.com/it-worker365/p/6925460.html