看开源中国出了这个top 50,看看大神们都出了什么样神奇的做品,看到第39个项目小编的标题是,“分布式高效 ID 生产黑科技”,这个就吸引个人眼球了,由于个人工做经验最多的就是交易流程,这个订单号就是我要解决的问题,以前我也写过一篇Twitter的Snowflake算法的学习博客。git
d算法
码云地址:https://gitee.com/yu120/sequence 受权协议:MIT并发
而后 clone 下来看看,其实里面就有只有两个类 sequence 和 Systemclork分布式
这边sequence的实现基本和Twitter的Snowflake算法差很少,看下面那个结构说明你就明白了,数据的结构,还有每一段的意义,还有局限性是什么,好比每毫秒的最多能够是多少。还有就是前面用了41位的时间戳,也限制了这种方法的使用年限,好像是69年,好像也没多少年了,那时候数据怎么处理,不错科技的进步仍是很快的。高并发
实际上用的就是这个nextId方法,获取一个ID,这边主要做者本身实现了一个系统时间SystemClock,在获取下一毫秒的方法中用到 tilNextMillis ,说明这里暗藏玄机。性能
做者在类的注释中写着“高并发场景下System.currentTimeMillis()的性能问题的优化”学习
这边主要用了定时频率去获取值,不知道这边定时任务的时间是怎么实现的,难道这样就不会与系统时间有交互吗?优化
只是以为排39了,项目代码怎么这么少get