Skip to content

基于snow flake算法的id生成器,改进版

Notifications You must be signed in to change notification settings

yongxin-ms/id_workder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ID Worker

基于snow flake算法的id生成器

之前有个人做了一版,没有处理服务器时间回滚的情况,实际使用中服务器的时间有可能会被同步,这样就比较坑爹了,这时候你的程序是直接挂掉?还是怎么样?

ntp导致的时间回滚,应该还是比较有规律的,比如一般情况下也就毫秒级别,或者1毫秒以下。1毫秒以下当然不用处理了,对于snowflake没有任何影响。

我的做法是分两种情况:

1.10毫秒以内,让服务器等时间追上来,这时候服务器就会卡一下,偶尔不超过20毫秒的卡顿还是能接受的。

2.10毫秒以上。支持31次调整不冲突,如果ntp每天同步一次,最坏的情况下一个月都不会冲突,一个月之外呢?时间都已经过了一个月了自然也就不会冲突了。

所以呢,虽然说不完美,但是作为一种折中的方案,应用起来应该还是挺合适的。

欢迎提意见

Will

20191206

About

基于snow flake算法的id生成器,改进版

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published