网上关于雪花算法的讲解很多,但大多不够完整,不能直接拿来用。因此这里不再赘述雪花算法的原理,而是对算法的相关代码做了一个整理,便于大家直接使用。
值得注意的是,此处提供的工具类不能解决由于时钟回拨带来的 ID 重复问题,在应用中需要大家自行根据实际情况解决;另外,数据中心标识和机器标识也可根据项目实际情况进行替换,实现定制化,不一定非要根据 IP 和 hostName 来生成。话不多说,上源码:
1 | import org.apache.commons.lang3.RandomUtils; |
(完)