看到sequence这个开源中国给排39

原创
2018/01/18 22:44
阅读数 160

看开源中国出了这个top 50,看看大神们都出了什么样神奇的作品,看到第39个项目小编的标题是,“分布式高效 ID 生产黑科技”,这个就吸引我的眼球了,因为我的工作经验最多的就是交易流程,这个订单号就是我要解决的问题,之前我也写过一篇Twitter的Snowflake算法的学习博客。

d

 

码云地址:https://gitee.com/yu120/sequence   授权协议:MIT

然后 clone 下来看看,其实里面就有只有两个类 sequence   和 Systemclork

这边sequence的实现基本和Twitter的Snowflake算法差不多,看下面那个结构说明你就明白了,数据的结构,还有每一段的意义,还有局限性是什么,比如每毫秒的最多可以是多少。还有就是前面用了41位的时间戳,也限制了这种方法的使用年限,好像是69年,好像也没多少年了,那时候数据怎么处理,不错科技的进步还是很快的。

实际上用的就是这个nextId方法,获取一个ID,这边主要作者自己实现了一个系统时间SystemClock,在获取下一毫秒的方法中用到 tilNextMillis ,说明这里暗藏玄机。

作者在类的注释中写着“高并发场景下System.currentTimeMillis()的性能问题的优化”

这边主要用了定时频率去获取值,不知道这边定时任务的时间是怎么实现的,难道这样就不会与系统时间有交互吗?

只是觉得排39了,项目代码怎么这么少

 

 

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部