一种分布式ID处理方法、系统、存储介质及电子设备技术方案

技术编号:30646569 阅读:22 留言:0更新日期:2021-11-04 00:55
本发明专利技术提供了一种分布式ID处理方法、系统、存储介质及电子设备,获取设备IP对应的设备信息并存储至设备信息位,将获取到的当前时间到预设原点时间的秒数作为初始值,记录初始值对应的时间戳,将时间戳与预设序列号进行合并操作得到序号位,时间戳为高位序号,预设序列号为低位序号,通过预设ID生成算法对预设固定位、设备信息位和序号位进行计算得到64位的分布式ID。通过上述方案,将时间戳作为高位序号与低位序号的预设原点时间合并入序号位,无需实时远程调用时间服务来获取当前时间,只需通过时间服务器获取一次当前时间,从而提高获取64位的分布式ID的效率。此外,通过时间服务器获取当前时间,确保获取当前时间的准确性。确保获取当前时间的准确性。确保获取当前时间的准确性。

【技术实现步骤摘要】
一种分布式ID处理方法、系统、存储介质及电子设备


[0001]本专利技术涉及数据处理
,更具体地说,涉及一种分布式ID处理方法、系统、存储介质及电子设备。

技术介绍

[0002]随着微服务推广普及,数据库分的越来越细,有时一个业务需要分成好几个数据库,这时候自增主键或者序列之类的主键ID生成方式已经不再满足需求,分布式系统中需要生成分布式ID。分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
[0003]现有技术中,分布式系统中生成分布式ID包括两个方面,一个方面是由单点序号发生器获取分布式ID;另一个方面是通过雪花算法获取分布式ID。
[0004]通过单点序号发生器获取分布式ID,需要远程调用需要产生服务,造成资源损耗,从而降低获取分布式ID的效率。通过雪花算法获取分布式ID,由于雪花算法会依赖于系统时间,若使用统一时间服务器,每次都需要远程调用时间服务,从而造成获取分布式ID的效率低下。
[0005]因此,现有获取分布式ID的方式的效率低。

技术实现思路

[0006]有鉴于此,本专利技术公开了一种分布式ID处理方法、系统、存储介质及电子设备,实现提高获取64位的分布式ID的效率的目的。此外,通过时间服务器获取当前时间,确保获取当前时间的准确性。
[0007]为了实现上述目的,其公开的技术方案如下:
[0008]本专利技术第一方面公开了一种分布式ID处理方法,所述方法包括:
[0009]获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,所述设备信息位的位数为16位;
[0010]将获取到的当前时间到预设原点时间的秒数作为初始值,记录所述初始值对应的时间戳;
[0011]将所述时间戳与预设序列号进行合并操作,得到序号位,其中,所述时间戳为高位序号,所述预设序列号为低位序号,所述序号位的位数为47位;
[0012]通过预设ID生成算法,对预设固定位、所述设备信息位和所述序号位进行计算,得到64位的分布式ID。
[0013]优选的,获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,包括:
[0014]当接收到ID获取请求时,获取设备IP;
[0015]将预设的设备标识添加至所述设备IP,得到所述设备IP对应的设备信息;
[0016]将所述设备信息存储至设备信息位。
[0017]优选的,将获取到的当前时间到预设原点时间的秒数作为初始值,记录所述初始值对应的时间戳,包括:
[0018]通过时间服务器获取当前时间;
[0019]将所述当前时间和预设原点时间进行求差计算,得到时间差值;
[0020]将所述时间差值对应的秒数作为初始值,并将所述初始值存储至高位序号,得到所述初始值对应的时间戳。
[0021]优选的,所述将所述时间戳与预设序列号进行合并操作,得到序号位,包括:
[0022]将所述时间戳中所述时间差值对应的秒数确定为初始值;
[0023]将所述初始值与预设序列号进行合并,得到序号位。
[0024]本专利技术第二方面公开了一种分布式ID处理系统,所述系统包括:
[0025]获取单元,用于获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,所述设备信息位的位数为16位;
[0026]记录单元,用于将获取到的当前时间到预设原点时间的秒数作为初始值,记录所述初始值对应的时间戳;
[0027]合并单元,用于将所述时间戳与预设序列号进行合并操作,得到序号位,其中,所述时间戳为高位序号,所述预设序列号为低位序号,所述序号位的位数为47位;
[0028]计算单元,用于通过预设ID生成算法,对预设固定位、所述设备信息位和所述序号位进行计算,得到64位的分布式ID。
[0029]优选的,所述获取单元,包括:
[0030]第一获取模块,用于当接收到ID获取请求时,获取设备IP;
[0031]添加模块,用于将预设的设备标识添加至所述设备IP,得到所述设备IP对应的设备信息;
[0032]第一存储模块,用于将所述设备信息存储至设备信息位。
[0033]优选的,所述记录单元,包括:
[0034]第二获取模块,用于通过时间服务器获取当前时间;
[0035]计算模块,用于将所述当前时间和预设原点时间进行求差计算,得到时间差值;
[0036]第二存储模块,用于将所述时间差值对应的秒数作为初始值,并将所述初始值存储至高位序号,得到所述初始值对应的时间戳。
[0037]优选的,所述合并单元,包括:
[0038]确定模块,用于将所述时间戳中所述时间差值对应的秒数确定为初始值;
[0039]合并模块,用于将所述初始值与预设序列号进行合并,得到序号位。
[0040]本专利技术第三方面公开了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如第一方面任意一项所述的分布式ID处理方法。
[0041]本专利技术第四方面公开了一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如第一方面任意一项所述的分布式ID处理方法。
[0042]经由上述技术方案可知,获取设备IP对应的设备信息,并将设备信息存储至设备信息位,设备信息位的位数为16位,将获取到的当前时间到预设原点时间的秒数作为初始
值,记录初始值对应的时间戳,将时间戳与预设序列号进行合并操作,得到序号位,其中,时间戳为高位序号,预设序列号为低位序号,序号位的位数为47位,通过预设ID生成算法,对预设固定位、设备信息位和序号位进行计算,得到64位的分布式ID。通过上述方案,将时间戳作为高位序号与低位序号的预设原点时间合并入序号位,无需实时远程调用时间服务来获取当前时间,只需通过时间服务器获取一次当前时间,从而提高获取64位的分布式ID的效率。此外,通过时间服务器获取当前时间,确保获取当前时间的准确性。
附图说明
[0043]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0044]图1为本专利技术实施例公开的一种分布式ID处理方法的流程示意图;
[0045]图2为本专利技术实施例公开的分布式ID的示意图;
[0046]图3为本专利技术实施例公开的将获取到的设备信息存储至设备信息位的流程示意图;
[0047]图4为本专利技术实施例公开的基于获取到的当前时间和预设原点时间,得到时间戳的流程示意图;
[0048]图5为本专利技术实施例公开的将时间戳与预设序列号进行合并操作,得到序号位的流程示意图;
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式ID处理方法,其特征在于,所述方法包括:获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,所述设备信息位的位数为16位;将获取到的当前时间到预设原点时间的秒数作为初始值,记录所述初始值对应的时间戳;将所述时间戳与预设序列号进行合并操作,得到序号位,其中,所述时间戳为高位序号,所述预设序列号为低位序号,所述序号位的位数为47位;通过预设ID生成算法,对预设固定位、所述设备信息位和所述序号位进行计算,得到64位的分布式ID。2.根据权利要求1所述的方法,其特征在于,所述获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,包括:当接收到ID获取请求时,获取设备IP;将预设的设备标识添加至所述设备IP,得到所述设备IP对应的设备信息;将所述设备信息存储至设备信息位。3.根据权利要求1所述的方法,其特征在于,将获取到的当前时间到预设原点时间的秒数作为初始值,记录所述初始值对应的时间戳,包括:通过时间服务器获取当前时间;将所述当前时间和预设原点时间进行求差计算,得到时间差值;将所述时间差值对应的秒数作为初始值,并将所述初始值存储至高位序号,得到所述初始值对应的时间戳。4.根据权利要求3所述的方法,其特征在于,所述将所述时间戳与预设序列号进行合并操作,得到序号位,包括:将所述时间戳中所述时间差值对应的秒数确定为初始值;将所述初始值与预设序列号进行合并,得到序号位。5.一种分布式ID处理系统,其特征在于,所述系统包括:获取单元,用于获取设备IP对应的设备信息,并将所述设备信息存储至设备信息位,所述设备信息位的位数为16位;记录单元,用于将获取到的当前时间到预设原点时间的...

【专利技术属性】
技术研发人员:高雪松
申请(专利权)人:京东科技控股股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1