ID生成方法、装置及系统制造方法及图纸

技术编号:21003939 阅读:42 留言:0更新日期:2019-04-30 21:29
本发明专利技术公开了一种ID生成方法、装置及系统,属于数据处理技术领域。所述方法包括:接收应用端发起的ID获取指令;获取目标进程标识和服务端标识,目标进程标识为服务端中执行ID获取指令的目标进程的标识;基于指定时间戳、目标进程标识、服务端标识和自增序列,生成目标ID,指定时间戳与当前时间戳正相关,指定时间戳的比特位高于目标进程标识的比特位和服务端标识的比特位,自增序列的比特位低于目标进程标识的比特位和服务端标识的比特位;向应用端发送目标ID。本发明专利技术通过服务端基于指定时间戳、目标进程标识、服务端标识和自增序列生成目标ID,在保证目标ID的全局唯一性的同时,扩大了ID的应用范围。

【技术实现步骤摘要】
ID生成方法、装置及系统
本专利技术涉及数据处理
,特别涉及一种ID生成方法、装置及系统。
技术介绍
目前很多应用场景中需要使用全局唯一识别码(Identifier,ID)。全局唯一ID指应用场景中的所有ID均不重复,即任何两个ID之间不会冲突。在分布式系统中,目前通常采用通用唯一识别码(UniversallyUniqueIdentifier,UUID)作为全局唯一ID。UUID通常由当前日期和时间、时钟序列以及全局唯一的机器序列号(例如网卡的媒体访问控制(MediaAccessControl,MAC)地址)组成,UUID通常以字符串的形式存储。但是,由于UUID采用字符串的形式存储,其可读性较差,查询效率较低;另外,UUID无法保证趋势递增,其应用局限性较高。
技术实现思路
本专利技术实施例提供了一种ID生成方法、装置及系统,可以解决相关技术中提供ID的应用局限性较高的问题。所述技术方案如下:第一方面,提供了一种ID生成方法,用于服务端,所述方法包括:接收应用端发起的ID获取指令;获取目标进程标识和服务端标识,所述目标进程标识为所述服务端中执行所述ID获取指令的目标进程的标识;基于指定时间戳、所述目标进程标识、所述服务端标识和自增序列,生成目标ID,所述指定时间戳与当前时间戳正相关,所述指定时间戳的比特位高于所述目标进程标识的比特位和所述服务端标识的比特位,所述自增序列的比特位低于所述目标进程标识的比特位和所述服务端标识的比特位;向所述应用端发送所述目标ID。可选地,所述获取目标进程标识,包括:获取所述目标进程对应的目标进程变量,所述服务端中不同进程所对应的进程变量不同;基于进程标识配置文件,获取所述目标进程标识,所述进程标识配置文件用于存储进程变量与进程标识的映射关系。可选地,所述基于进程标识配置文件,获取所述目标进程标识,包括:检测所述进程标识配置文件中是否存储有所述目标进程变量与所述目标进程标识的映射关系;当所述进程标识配置文件中存储有所述目标进程变量与所述目标进程标识的映射关系时,从所述进程标识配置文件中获取所述目标进程标识。可选地,在所述检测所述进程标识配置文件中是否存储有所述目标进程变量与所述目标进程标识的映射关系之后,所述方法还包括:当所述进程标识配置文件中未存储有所述目标进程变量与所述目标进程标识的映射关系时,遍历所述进程标识配置文件,以获取所述进程标识配置文件中数值最大的进程标识;将所述数值最大的进程标识加1得到的数值确定为所述目标进程标识;在所述进程标识配置文件中存储所述目标进程变量与所述目标进程标识的映射关系,得到更新后的进程标识配置文件。可选地,所述获取服务端标识,包括:检测所述服务端的系统配置文件中是否存在所述服务端标识,所述服务端标识的取值范围为0至N-1,N为所述服务端所在系统支持的服务端的最大数量,N为正整数;当所述服务端的系统配置文件中存在所述服务端标识时,获取所述服务端标识。可选地,在所述检测所述服务端的系统配置文件中是否存在所述服务端标识之后,所述方法还包括:当所述服务端的系统配置文件中不存在所述服务端标识时,从所述服务端的运维配置文件中获取服务端ID;将所述服务端ID对N取模,得到所述服务端标识。可选地,所述目标ID由高位至低位依次包括标记位、所述指定时间戳、所述目标进程标识、所述服务端标识和所述自增序列;或者,所述目标ID由高位至低位依次包括标记位、所述指定时间戳、所述服务端标识、所述目标进程标识和所述自增序列。可选地,所述目标ID的位宽为64位;所述标记位的位宽为1位,所述指定时间戳的位宽范围为35-45位,所述目标进程标识的位宽范围为1-10位,所述服务端标识的位宽范围为5-10位,所述自增序列的位宽范围为6-20位。第二方面,提供了一种ID生成装置,用于服务端,所述装置包括:接收模块,用于接收应用端发起的ID获取指令;获取模块,用于获取目标进程标识和服务端标识,所述目标进程标识为所述服务端中执行所述ID获取指令的目标进程的标识;生成模块,用于基于指定时间戳、所述目标进程标识、所述服务端标识和自增序列,生成目标ID,所述指定时间戳与当前时间戳正相关,所述指定时间戳的比特位高于所述目标进程标识的比特位和所述服务端标识的比特位,所述自增序列的比特位低于所述目标进程标识的比特位和所述服务端标识的比特位;发送模块,用于向所述应用端发送所述目标ID。可选地,所述获取模块,用于:获取所述目标进程对应的目标进程变量,所述服务端中不同进程所对应的进程变量不同;基于进程标识配置文件,获取所述目标进程标识,所述进程标识配置文件用于存储进程变量与进程标识的映射关系。可选地,所述获取模块,还用于:检测所述进程标识配置文件中是否存储有所述目标进程变量与所述目标进程标识的映射关系;当所述进程标识配置文件中存储有所述目标进程变量与所述目标进程标识的映射关系时,从所述进程标识配置文件中获取所述目标进程标识。可选地,所述获取模块,还用于:当所述进程标识配置文件中未存储有所述目标进程变量与所述目标进程标识的映射关系时,遍历所述进程标识配置文件,以获取所述进程标识配置文件中数值最大的进程标识;将所述数值最大的进程标识加1得到的数值确定为所述目标进程标识;在所述进程标识配置文件中存储所述目标进程变量与所述目标进程标识的映射关系,得到更新后的进程标识配置文件。可选地,所述获取模块,用于:检测所述服务端的系统配置文件中是否存在所述服务端标识,所述服务端标识的取值范围为0至N-1,N为所述服务端所在系统支持的服务端的最大数量,N为正整数;当所述服务端的系统配置文件中存在所述服务端标识时,获取所述服务端标识。可选地,所述获取模块,还用于:当所述服务端的系统配置文件中不存在所述服务端标识时,从所述服务端的运维配置文件中获取服务端ID;将所述服务端ID对N取模,得到所述服务端标识。可选地,所述目标ID由高位至低位依次包括标记位、所述指定时间戳、所述目标进程标识、所述服务端标识和所述自增序列;或者,所述目标ID由高位至低位依次包括标记位、所述指定时间戳、所述服务端标识、所述目标进程标识和所述自增序列。可选地,所述目标ID的位宽为64位;所述标记位的位宽为1位,所述指定时间戳的位宽范围为35-45位,所述目标进程标识的位宽范围为1-10位,所述服务端标识的位宽范围为5-10位,所述自增序列的位宽范围为6-20位。第三方面,提供了一种ID生成系统,所述系统包括:至少一个服务端和至少一个应用端,所述服务端包括如第二方面任一所述的ID生成装置。第四方面,提供了一种ID生成装置,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器上所存储的计算机程序,实现如第一方面任一所述的ID生成方法。第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有代码指令,所述代码指令由处理器执行,实现如第一方面任一所述的ID生成方法。本专利技术实施例提供的技术方案带来的有益效果包括:通过服务端基于指定时间戳、目标进程标识、服务端标识和自增序列生成目标ID。由于不同服务端的服务端标识不同,且同一服务端中不同进程的进程标识不同,因此可以保证服务端中的目标进程在某一时刻生成的目标ID是全局唯一本文档来自技高网...

【技术保护点】
1.一种ID生成方法,其特征在于,用于服务端,所述方法包括:接收应用端发起的ID获取指令;获取目标进程标识和服务端标识,所述目标进程标识为所述服务端中执行所述ID获取指令的目标进程的标识;基于指定时间戳、所述目标进程标识、所述服务端标识和自增序列,生成目标ID,所述指定时间戳与当前时间戳正相关,所述指定时间戳的比特位高于所述目标进程标识的比特位和所述服务端标识的比特位,所述自增序列的比特位低于所述目标进程标识的比特位和所述服务端标识的比特位;向所述应用端发送所述目标ID。

【技术特征摘要】
1.一种ID生成方法,其特征在于,用于服务端,所述方法包括:接收应用端发起的ID获取指令;获取目标进程标识和服务端标识,所述目标进程标识为所述服务端中执行所述ID获取指令的目标进程的标识;基于指定时间戳、所述目标进程标识、所述服务端标识和自增序列,生成目标ID,所述指定时间戳与当前时间戳正相关,所述指定时间戳的比特位高于所述目标进程标识的比特位和所述服务端标识的比特位,所述自增序列的比特位低于所述目标进程标识的比特位和所述服务端标识的比特位;向所述应用端发送所述目标ID。2.根据权利要求1所述的方法,其特征在于,所述获取目标进程标识,包括:获取所述目标进程对应的目标进程变量,所述服务端中不同进程所对应的进程变量不同;基于进程标识配置文件,获取所述目标进程标识,所述进程标识配置文件用于存储进程变量与进程标识的映射关系。3.根据权利要求2所述的方法,其特征在于,所述基于进程标识配置文件,获取所述目标进程标识,包括:检测所述进程标识配置文件中是否存储有所述目标进程变量与所述目标进程标识的映射关系;当所述进程标识配置文件中存储有所述目标进程变量与所述目标进程标识的映射关系时,从所述进程标识配置文件中获取所述目标进程标识。4.根据权利要求3所述的方法,其特征在于,在所述检测所述进程标识配置文件中是否存储有所述目标进程变量与所述目标进程标识的映射关系之后,所述方法还包括:当所述进程标识配置文件中未存储有所述目标进程变量与所述目标进程标识的映射关系时,遍历所述进程标识配置文件,以获取所述进程标识配置文件中数值最大的进程标识;将所述数值最大的进程标识加1得到的数值确定为所述目标进程标识;在所述进程标识配置文件中存储所述目标进程变量与所述目标进程标识的映射关系,得到更新后的进程标识配置文件。5.根据权利要求1所述的方法,其特征在于,所述获取服务端标识,包括:检测所述服务端的系统配置文件中是否存在所述服务端标识,所述服务端标识的取值范围为0至N-...

【专利技术属性】
技术研发人员:薛伟鹏杨子国周健兴
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

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

1