一种唯一键生成方法、装置及终端设备制造方法及图纸

技术编号:21453858 阅读:59 留言:0更新日期:2019-06-26 04:45
本发明专利技术适用于分布式系统技术领域,提供了一种唯一键生成方法、装置及终端设备,其中,方法包括:获取待生成数据,根据所述待生成数据的服务实例顺序对应生成服务实例编码,根据实际时间对应生成年、周、周几和秒,根据预设规则对应生成序列号、扩展位和版本,将上述生成字段根据唯一键基础数据结构合成唯一键,并将所述唯一键标注在所述待生成数据中;其中,所述生成字段包括服务实例编码、年、周、周几和秒、序列号、扩展位和版本。本发明专利技术可以保证单机场景下唯一键数据不重复,且满足分布式的全局唯一、有序性、可反解性、高性能、可扩张性、可读性等基本需求。

【技术实现步骤摘要】
一种唯一键生成方法、装置及终端设备
本专利技术属于分布式系统
,尤其涉及一种唯一键生成方法、装置及终端设备。
技术介绍
在分布式环境下,生成唯一键处理方式一般是通过通用唯一识别码(UUID,UniversallyUniqueIdentifier)计算规则或者数据库生成方式来实现。其中,1、UUID计算规则保证了全局系统的唯一性,但是UUID存在生成性能较差、不可追踪、不可反解以及无序性等,若UUID作为数据库主键,则会导致数据库写入问题。2、数据库方式实现一般通过数据生成主键以及设定特定的主键步长来实现,此种实现方案性能较差、横向扩展能力较差,同时依赖于数据库,增加了人员维护成本。通过以上两种方案来生成唯一键,会存在上述多种问题。在快速发展、要求高性能的分布式环境下,无法不能满足用户需求。
技术实现思路
有鉴于此,本专利技术实施例提供了一种唯一键生成方法、装置及终端设备,以解决现有技术中存在的问题。本专利技术实施例的第一方面提供了一种唯一键生成方法,包括:获取待生成数据;根据所述待生成数据的服务实例顺序对应生成服务实例编码;根据实际时间对应生成年、周、周几和秒;根据预设规则对应生成序列号、扩展位和版本;将上述生成字段根据唯一键基础数据结构合成唯一键,并将所述唯一键标注在所述待生成数据中;其中,所述生成字段包括服务实例编码、年、周、周几和秒、序列号、扩展位和版本。可选的,所述预设规则,包括:按照预设顺序生成所述序列号,其中,预设顺序包括通过高性能锁的方式在每个服务内累加序列号数据;若当前序列号生成时间与上一次序列号生成时间不同,则以预设时间段为一个轮回,从0000开始生成所述序列号,直至生成序列号9999;若当前轮回时间使用完毕,则等待下一轮回,继续生成所述序列号。可选的,所述预设规则,还包括:若序列号生成的秒数与上一次序列号生成的秒数相同,则序列号数据加1;若序列号数据达到最大值,则等待下一轮回;若下一轮回时间到达,则从0000开始继续生成序列号数据。可选的,所述预设规则,还包括:扩展位默认值为0;若所述服务实例编码、所述年、所述序列号中任一字段需要扩展,则扩展位的值加一,并通过对应修改的版本值来指定扩展对应的字段。可选的,所述预设规则,还包括:版本默认值为6时,表示扩展位为0;版本值为7,表示服务实例编码字段扩展;版本值为8,表示年字段扩展;版本值为9,表示序列号字段扩展;其中,版本值0-5为预留位。可选的,根据实际时间对应生成年、周、周几和秒,包括:每天第一秒从00000开始生成秒,根据时间节点的变化自动刷新秒数,每秒自动加1,直到秒数为86400,重新开始计秒;若当前日与下一秒到达日相同,则秒数加1;若当前日与下一秒到达日不相同,则重置秒数,从00000开始生成秒。本专利技术实施例的第二方面提供了一种唯一键生成装置,包括:获取模块,用于获取待生成数据;第一生成模块,用于根据所述待生成数据的服务实例顺序对应生成服务实例编码;第二生成模块,用于根据实际时间对应生成年、周、周几和秒;第三生成模块,用于根据预设规则对应生成序列号、扩展位和版本;合成模块,用于将上述生成字段根据唯一键基础数据结构合成唯一键,并将所述唯一键标注在所述待生成数据中;其中,所述生成字段包括服务实例编码、年、周、周几和秒、序列号、扩展位和版本。本专利技术实施例的第三方面提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。本专利技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。本专利技术实施例根据待生成数据的服务实例顺序对应生成服务实例编码,根据实际时间对应生成年、周、周几和秒,然后根据预设规则对应生成序列号、扩展位和版本,将上述生成字段根据唯一键基础数据结构合成唯一键,并将唯一键标注在待生成数据中,可以保证单机场景下唯一键数据不重复,且满足分布式的全局唯一、有序性、可反解性、高性能、可扩张性、可读性等基本需求。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的唯一键生成方法的流程示意图;图2是本专利技术实施例二提供的唯一键生成装置的结构示意图;图3是本专利技术实施例三提供的终端设备的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一如图1所示,本实施例提供一种唯一键生成方法,该方法可以应用于如PC\平板电脑、手机等终端设备。本实施例所提供的唯一键生成方法,包括:S101、获取待生成数据。在具体应用中,获取分布式系统软件的业务系统中需要生成全局唯一性主键的待生成数据,其中,唯一性主键,简称唯一键,用于汇总数据、划分数据、追踪数据来源、实现分库功能及分表功能。S102、根据所述待生成数据的服务实例顺序对应生成服务实例编码。在具体应用中,根据待生成数据的服务实例顺序生成对应的服务实例编码,其中,服务实例顺序可设定为实现配置方式的顺序,在生产环境配置对应的服务实例顺序。服务实例编码默认最大支持899个服务实例,预留1-99号编码为测试服务编码。S103、根据实际时间对应生成年、周、周几和秒。在具体应用中,获取当前时刻的实际时间,根据实际时间生成对应的年字段、周字段、周几字段和秒字段,具体的,年字段默认取值实际时间中年份的后两位数据,支持00-99总共100个数值选择,可根据版本与扩展位共同控制,扩展年字段默认取值到支持000-999年,总共1000个数值选择。周为实际时间中所处的一年中的周数,即一年中的第几周。周几为所在周的范围,默认值在0-6之间,0为周日,1为周一,以此类推秒为在一天所在的秒数,随时间变化而变化,具体的,秒从00000开始生成,根据时间节点自动刷新秒数,每秒自动加1,直到86400。S104、根据预设规则对应生成序列号、扩展位和版本。在具体应用中,根据预设规则生成对应的序列号字段、扩展位字段和版本字段,其中,序列号为按照预设顺序生成的序列号,预设顺序包括通过高性能锁的方式在每个服务内累加序列号数据。扩展位为预留位,默认值为0。版本为可指本文档来自技高网
...

【技术保护点】
1.一种唯一键生成方法,其特征在于,包括:获取待生成数据;根据所述待生成数据的服务实例顺序对应生成服务实例编码;根据实际时间对应生成年、周、周几和秒;根据预设规则对应生成序列号、扩展位和版本;将上述生成字段根据唯一键基础数据结构合成唯一键,并将所述唯一键标注在所述待生成数据中;其中,所述生成字段包括服务实例编码、年、周、周几和秒、序列号、扩展位和版本。

【技术特征摘要】
1.一种唯一键生成方法,其特征在于,包括:获取待生成数据;根据所述待生成数据的服务实例顺序对应生成服务实例编码;根据实际时间对应生成年、周、周几和秒;根据预设规则对应生成序列号、扩展位和版本;将上述生成字段根据唯一键基础数据结构合成唯一键,并将所述唯一键标注在所述待生成数据中;其中,所述生成字段包括服务实例编码、年、周、周几和秒、序列号、扩展位和版本。2.如权利要求1所述的唯一键生成方法,其特征在于,所述预设规则,包括:按照预设顺序生成所述序列号,其中,预设顺序包括通过高性能锁的方式在每个服务内累加序列号数据;若当前序列号生成时间与上一次序列号生成时间不同,则以预设时间段为一个轮回,从0000开始生成所述序列号,直至生成序列号9999;若当前轮回时间使用完毕,则等待下一轮回,继续生成所述序列号。3.如权利要求2所述的唯一键生成方法,其特征在于,所述预设规则,还包括:若序列号生成的秒数与上一次序列号生成的秒数相同,则序列号数据加1;若序列号数据达到最大值,则等待下一轮回;若下一轮回时间到达,则从0000开始继续生成序列号数据。4.如权利要求1所述的唯一键生成方法,其特征在于,所述预设规则,还包括:扩展位默认值为0;若所述服务实例编码、所述年、所述序列号中任一字段需要扩展,则扩展位的值加一,并通过对应修改的版本值来指定扩展对应的字段。5.如权利要求1所述的唯一键生成方法,其特征在于,所述预设规则,还包括:版本默认值为6时,表示扩展位为0;版本值为7,表示服务实例编码字段扩展;版本值为8,表示年字段扩展;版本值为9,表示序列号字段扩展;其中,版本值0-5为预留位。6.如权利要求1所述的唯一...

【专利技术属性】
技术研发人员:白国栋
申请(专利权)人:常州猛犸电动科技有限公司
类型:发明
国别省市:江苏,32

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

1