x
//【雪花算法】
//在前面学【@TableId注解的type属性】的时候,我们讲过怎么设置主键的生成策略,当时我们把'默认的雪花算法主键策略'修改为'数据库的主键自增策略',
//那么这里就详细讲一下关于雪花算法的介绍
//雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的主键的有序性
//核心思想:
//雪花算法的长度共64bit(一个long型),简单来说就是64位。拆分成如下
//1bit是一个符号位,也叫标识。由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0
//41bit时间截(毫秒级),存储的是时间截的差值(当前时间截 - 开始时间截),结果约等于69.73年
//10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID,可以部署在1024个节点
//12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID
//总长度: 符号位(1bit)+时间戳位(41bit)+工作进程位(10bit)+序列号位(12bit)
//雪花算法的优点: 整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞,并且效率较高
//了解即可,使用很简单,我们在前面的【@TableId注解的type属性】的时候学过