参考:
改进雪花算法生成分布式下全局ID并考虑时钟回拨_Kainx-CSDN博客_雪花算法时钟回拨
【死磕Sharding-jdbc】---分布式ID_chenssy 的技术博客-CSDN博客
SnowFlake算法 - 时钟回拨问题_未生___的博客-CSDN博客_时钟回拨原理
1.什么是时钟回拨
相当于时光倒流,当前机器时间又回到了之前已经走过的某个时间点。
2.雪花算法主键重复原因
同一个时间点(毫秒)+同一个机器(发生了时钟回拨)+序列号,
是某一个机器发生回拨,导致这个机器生产ID重复。
3.当当生成方法
依赖:
<dependency>
<groupId>com.dangdang</groupId>
<artifactId>sharding-jdbc-core</artifactId>
<version>1.5.4.1</version>
</dependency>
DefaultKeyGenerator
官方对于此并没有给出解决方案,而是简单的抛错处理,这样会造成在时间被追回之前的这段时间服务不可用,显然我无法接受这一点。