网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

雪花算法(03)生成时间-创新互联

前面的理论基础和位运算都了解了,下面我们来生成雪花算法的第一部分,也就是时间部分。时间部分的逻辑起始很简单,就是规定一个起始时间戳,然后用当前时间戳减去起始时间戳,这两个数的差就是我们要的结果。简单看一下代码逻辑:

创新互联建站专注于盐亭网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供盐亭营销型网站建设,盐亭网站制作、盐亭网页设计、盐亭网站官网定制、微信小程序定制开发服务,打造盐亭网络公司原创品牌,更为您提供盐亭网站排名全网营销落地服务。

雪花算法(03)生成时间

我们规定的起始时间是 2015-01-01 00:00:00 ,然后获取当前时间,用当前时间减去起始时间,就是我们要的时间部分的数值。这个时候就有一个问题了,如果我们系统的时钟错了会不会有问题?会!所以要做判断!而且系统的时钟错误也是雪花算法的一个致命问题,所以要一定要保证服务器的系统时间正确。来看一下对时间戳的判断:

雪花算法(03)生成时间

定义了一个变量LAST_TIME_STAMP记为上次id的生成时间,每次生成都标记一下,所以这个时间一定是递增的,如果系统时钟除了问题,那么直接报异常。这是对系统时间错误的一个判断和处理。

就这样时间部分就生成了,现在看看还是很简单的。现在我们再来看雪花算法的时间范围,由于时间共占有41位,所以时间的数字范围是有一个大值的,写成2进制就是41个1,比如我们的起始时间是2015-01-01 00:00:00,时间戳是1420041600000L,把41个1转换成long类型数字,再加上这个时间戳数字,就是一个雪花算法最终的时间戳,转换成时间就是2084-09-06 15:47:35,也就是这个41位时间的雪花算法最长使用69年9个月6天零15小时47分35秒,不过对于一个项目来说,这样的限制不算限制,足足的够用了。

代码地址:https://gitee.com/blueses/snowflake-demo 03

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文题目:雪花算法(03)生成时间-创新互联
URL标题:http://bjjierui.cn/article/dsoois.html

其他资讯