标识生成方法、装置、电子设备及存储介质与流程

未命名 09-16 阅读:74 评论:0


1.本技术涉及计算机技术领域,尤其涉及一种标识生成方法、装置、电子设备及存储介质。


背景技术:

2.随着计算机技术发发展,经常涉及到需要对对象或信息进行全局唯一编码的情况,此时,需要利用唯一编码生成器生成全局唯一标识(identity document,id),例如:订单id、医生id、患者id等。
3.在传统的数据库中,通常使用id自增模式生成各个对象的标识,在分库分表后,同一业务数据表的自增id容易重复,无法直接使用。


技术实现要素:

4.本技术提供一种标识生成方法、装置、电子设备及存储介质,用于解决现有技术中存在的生成的标识重复问题。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,提供一种标识生成方法,方法包括:接收客户端的标识生成请求,并获取当前时间戳;标识生成请求用于请求标识生成器生成标识,标识生成请求包括客户端对应的数据库表编号;根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识;对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。
7.可选的,根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识,包括:对当前时间戳、数据库表编号以及标识生成器的编号进行移位运算,得到临时标识。
8.可选的,方法还包括:在临时标识与缓存器中的标识相同的情况下,则重新执行移位运算,直至生成的临时标识与缓存器中的标识不同为止。
9.可选的,标识生成请求还包括请求生成的标识数量;根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识,包括:根据当前时间戳、数据库表编号以及标识生成器的编号,按照全局递增的顺序生成多个临时标识;临时标识的数量与标识生成请求中的标识数量相同。
10.可选的,方法还包括:在临时标识与缓存器中的标识不同的情况下,将临时标识添加到缓存器中。
11.可选的,将临时标识添加到缓存器中之后,方法还包括:获取临时标识在缓存器中的缓存时长以及读取次数;在缓存时长大于或者等于预设时长,或者,读取次数小于或者等于预设次数的情况下,将临时标识从缓存器中删除。
12.可选的,方法还包括:获取标识生成器的主机地址,并根据主机地址,生成主机编号;对主机地址进行地址碰撞检测,以确定主机地址是否重复注册;在主机地址未重复注册的情况下,对主机编号进行编号碰撞检测,以确定主机编号是否重复注册;在主机编号未重
复注册的情况下,将主机编号确定为标识生成器的编号。
13.可选的,方法还包括:在主机编号重复注册的情况下,按照预设值对主机编号进行递增,并对递增后的主机编号进行编号碰撞检测,直至主机地址未重复注册或者主机编号大于预设阈值为止。
14.第二方面,提供一种标识生成装置,装置包括获取单元以及处理单元;获取单元,用于接收客户端的标识生成请求,并获取当前时间戳;标识生成请求用于请求标识生成器生成标识,标识生成请求包括客户端对应的数据库表编号;处理单元,用于根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识;处理单元,还用于对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。
15.可选的,处理单元,具体用于:对当前时间戳、数据库表编号以及标识生成器的编号进行移位运算,得到临时标识。
16.可选的,处理单元还用于:在临时标识与缓存器中的标识相同的情况下,则重新执行移位运算,直至生成的临时标识与缓存器中的标识不同为止。
17.可选的,标识生成请求还包括请求生成的标识数量;处理单元,具体用于:根据当前时间戳、数据库表编号以及标识生成器的编号,按照全局递增的顺序生成多个临时标识;临时标识的数量与标识生成请求中的标识数量相同。
18.可选的,处理单元还用于:在临时标识与缓存器中的标识不同的情况下,将临时标识添加到缓存器中。
19.可选的,将临时标识添加到缓存器中之后,处理单元还用于:获取临时标识在缓存器中的缓存时长以及读取次数;在缓存时长大于或者等于预设时长,或者,读取次数小于或者等于预设次数的情况下,将临时标识从缓存器中删除。
20.可选的,处理单元还用于:获取标识生成器的主机地址,并根据主机地址,生成主机编号;对主机地址进行地址碰撞检测,以确定主机地址是否重复注册;在主机地址未重复注册的情况下,对主机编号进行编号碰撞检测,以确定主机编号是否重复注册;在主机编号未重复注册的情况下,将主机编号确定为标识生成器的编号。
21.可选的,处理单元还用于:在主机编号重复注册的情况下,按照预设值对主机编号进行递增,并对递增后的主机编号进行编号碰撞检测,直至主机地址未重复注册或者主机编号大于预设阈值为止。
22.第三方面,提供一种电子设备,包括:处理器、用于存储处理器可执行的指令的存储器;其中,处理器被配置为执行指令,以实现上述第一方面的标识生成方法。
23.第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面的标识生成方法。
24.本技术实施例提供的技术方案至少带来以下有益效果:标识生成装置接收客户端的标识生成请求,并获取当前时间戳;其中,标识生成请求用于请求标识生成器生成标识。由于标识生成请求包括客户端对应的数据库表编号,因此,标识生成装置可以根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识。进一步的,标识生成装置对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯
一标识,并输出唯一标识。相较于现有技术的标识生成方式,本技术并没有直接输出生成的临时标识,而是将生成的临时标识进行去重校验,仅在临时标识与缓存器中的标识不同的情况下,本技术才将临时标识确定为唯一标识,并输出唯一标识。这样一来,可以使得最终输出的标识具有全局唯一性,进而避免出现了标识重复的问题。
附图说明
25.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为本技术实施例提供的一种雪花算法实例启动逻辑示意图;
27.图2为本技术实施例提供的一种标识生成系统的结构示意图;
28.图3为本技术实施例提供的一种标识生成方法的流程示意图一;
29.图4为本技术实施例提供的一种标识生成方法的流程示意图二;
30.图5为本技术实施例提供的一种标识生成方法的流程示意图三;
31.图6为本技术实施例提供的一种标识生成方法的流程示意图四;
32.图7为本技术实施例提供的一种标识生成装置的结构示意图;
33.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
34.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
36.还需要说明的是,本技术实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
37.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
38.在对本技术实施例进行详细地解释说明之前,先对本技术实施例涉及到的一些技术术语以及相关技术进行介绍。
39.随着计算机技术发发展,经常涉及到需要对对象或信息进行全局唯一编码的情况,此时,需要利用唯一编码生成器生成全局唯一id。
40.目前,当需要生成全数值型的全局唯一id时,一般通过雪花算法实现。
41.示例性的,如图1所示,为雪花算法实例启动逻辑示意图。其中,系统启动时,首先获取宿主机的本地网际互连协议(internet protocol,ip)地址,并进行哈希运算得到对应的哈希值(hash code)。进一步的,系统使用雪花算法支持最大的宿主机台数(如32台)对哈希值(hash code)进行求模取余,得到当前宿主机编号(worker id),最后使用宿主机编号(worker id)注册生成id生成器,完成启动初始化任务。
42.基于雪花算法的id生成器启动之后,响应于客户端或者用户请求对外接口,id生成器将根据客户端对应的编码信息(例如生成器编号、当前时间戳等)生成一个数据库id。
43.但是,在雪花算法实例启动过程中,针对ip冲突,worker id已注册以及在毫秒级别高并发模式下,有极大概率生成重复的数据库id的问题。目前业界,针对以上雪花算法现存问题,并未给出解决方案。
44.鉴于此,本技术实施例提供了一种标识生成方法,以解决基于雪花算法的id生成器实例在启动时产生的ip冲突问题,worker id已注册问题以及在高并发情况数据库id全局不唯一的问题,并保证id全局唯一且有序,局部保持递增的趋势。
45.下面结合附图对本技术实施例提供的标识生成方法进行详细说明。
46.本技术实施例提供的标识生成方法可以适用于标识生成系统,图2示出了该标识生成系统的一种结构示意图。如图2所示,标识生成系统10包括标识生成装置11以及电子设备12。其中,标识生成装置11与电子设备12之间可以采用有线方式连接,也可以采用无线方式连接,本技术实施例对此不作限定。
47.标识生成装置11用于接收客户端的标识生成请求,并获取当前时间戳。标识生成装置11还用于根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识,对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。
48.电子设备12中部署有数据库,例如该数据库可以为分布式数据库。电子设备12用于将标识生成装置11输出的唯一标识存储在数据库中。
49.标识生成装置11可以在各种电子设备12中实现本技术实施例的标识生成方法。例如,电子设备12可以服务器、云端服务器等,本技术实施例对电子设备的具体类型不作限制。
50.在不同的应用场景中,标识生成装置11和电子设备12可以为相互独立的设备,也可以集成于同一设备中,本技术实施例对此不作具体限定。
51.标识生成装置11和电子设备12集成于同一设备时,标识生成装置11和电子设备12之间的数据传输方式为该设备内部模块之间的数据传输。这种情况下,二者之间的数据传输流程与“标识生成装置11和电子设备12之间相互独立的情况下,二者之间的数据传输流程”相同。
52.在本技术实施例提供的以下实施例中,以标识生成装置11和电子设备12相互独立设置为例进行说明。
53.图3是根据一些示例性实施例示出的一种标识生成方法的流程示意图。在一些实施例中,上述标识生成方法可以应用到如图2所示的标识生成装置、电子设备,也可以应用到其他类似设备。
54.如图3所示,本技术实施例提供的标识生成方法,包括下述s201-s203。
55.s201、标识生成装置接收客户端的标识生成请求,并获取当前时间戳。
56.其中,标识生成请求用于请求标识(即id)生成器生成标识,标识生成请求包括客户端对应的数据库表编号。
57.作为一种可能的实现方式,标识生成装置中部署有id生成器,标识生成装置启动id生成器之后,客户端可以通过标识生成装置设置的id生成器对外接口,向标识生成装置发送标识生成请求。相应的,标识生成装置接收客户端的标识生成请求,并获取当前时间戳。
58.需要说明的,id生成器用于根据编码算法(例如雪花算法)生成id。
59.例如,客户端所请求生成的标识可以为分布式数据库id。
60.在一些实施例中,标识生成请求中还可以携带请求生成的标识数量(num),客户端对应的数据库表编号可以为id生成器支持的数据中心编号(data centerid)。
61.可以理解的,为了减少客户端频繁请求id生成器,减小id生成器的请求并发量,生成器提供批量id生成功能,例如客户端每次请求生成10000个id,由于id生成器的id生成为纯算法计算得到,因此尽管生成10000个id,对接口性能影响也是极小的,但是接口的并发量却降低10000倍。
62.s202、标识生成装置根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识。
63.作为一种可能的实现方式,标识生成装置对当前时间戳、数据库表编号以及标识生成器的编号进行移位运算,得到临时标识。
64.在一些实施例中,若客户端发起的标识生成请求为批量请求时,标识生成装置则根据当前时间戳、数据库表编号以及标识生成器的编号,按照全局递增的顺序生成多个临时标识。
65.可以理解的,临时标识的数量与标识生成请求中的标识数量相同。
66.s203、标识生成装置对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。
67.作为一种可能的实现方式,标识生成装置将临时标识与本地缓存器中缓存的标识进行对比,在临时标识与缓存器中的标识不同的情况下,标识生成装置将临时标识确定为唯一标识,并输出唯一标识。
68.可选的,在临时标识与缓存器中的标识不同的情况下,标识生成装置还可以将临时标识添加到缓存器中,以便后续作为参考,避免后续新生产的标识与其重复。
69.在一些实施例中,在临时标识与缓存器中的标识相同的情况下,则重新执行移位运算,直至生成的临时标识与缓存器中的标识不同为止。
70.如图4所示,用户向标识生成装置中的id生成器发起批量生成id请求,标识生成装置通过id生成器生成临时id。进一步的,标识生成装置对临时id进行碰撞检测,将临时id与本地缓存器中缓存的最近生成(5分钟内)id进行去重校验,如果重复将丢弃该id,进行自旋再次生成,并再次进行去重校验,否则将加入缓存器临时存储,并同时加入数据返回列表,以待接口返回。
71.可选的,缓存器缓存的数据支持至少两种淘汰算法,一种是设置固定超时时间(5分钟),当一条数据达到其所设置超时时间时,将被驱逐出缓存器。为了解决id生成数量突
增,缓存器中缓存数据都未达到其所设置超时时间的情况,缓存器提供另一种淘汰算法,最近最少使用(least recently used,lru)算法。例如,读取次数小于或者等于预设次数的情况下,标识生成装置将临时标识从缓存器中删除。
72.本技术实施例提供的技术方案至少带来以下有益效果:标识生成装置接收客户端的标识生成请求,并获取当前时间戳;其中,标识生成请求用于请求标识生成器生成标识。由于标识生成请求包括客户端对应的数据库表编号,因此,标识生成装置可以根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识。进一步的,标识生成装置对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。相较于现有技术的标识生成方式,本技术并没有直接输出生成的临时标识,而是将生成的临时标识进行去重校验,仅在临时标识与缓存器中的标识不同的情况下,本技术才将临时标识确定为唯一标识,并输出唯一标识。这样一来,可以使得最终输出的标识具有全局唯一性,进而避免出现了标识重复的问题。
73.在一种设计中,为了得到标识生成器的编号,如图5所示,本技术实施例提供的标识生成方法还包括:
74.s301、标识生成装置获取标识生成器的主机地址,并根据主机地址,生成主机编号。
75.需要说明的,标识生成器的主机地址即为标识生成装置所在的宿主机的网际互连协议(internet protocol,ip)地址。
76.作为一种可能的实现方式,标识生成装置获取宿主机的本地ip,并对宿主机的本地ip进行哈希运算,得到对应的哈希值(hash code)。进一步的,标识生成装置使用雪花算法支持最大的宿主机台数(32台)对哈希值(hash code)求模取余,得到当前宿主机编号(worker id),该worker id即为主机编号。
77.s302、标识生成装置对主机地址进行地址碰撞检测,以确定主机地址是否重复注册。
78.作为一种可能的实现方式,标识生成装置将宿主机的ip地址与本地数据库中已注册的主机地址进行对比,判断该宿主机的ip是否已注册。
79.s303、在主机地址未重复注册的情况下,标识生成装置对主机编号进行编号碰撞检测,以确定主机编号是否重复注册。
80.作为一种可能的实现方式,在主机地址未重复注册的情况下,标识生成装置再将主机编号与本地数据库中已注册的主机编号进行对比,判断该主机编号是否已注册。
81.s304、在主机编号未重复注册的情况下,标识生成装置将主机编号确定为标识生成器的编号。
82.示例性的,如图6所示,由于实际应用中可能出现一台虚拟机被部署多个id生成器应用实例,多个id生成器实例此时获取的虚拟机ip可能出现重复的情况,因此在实例启动中新增ip碰撞检测,检测通过的ip将再次进行实例编号worker id碰撞检测,如果ip和worker id均检测通过则直接注册生成器实例,若检测失败,worker id将进行自增加一操作,只要worker id值不超过雪花算法支持的最大实例数,标识生成装置则将继续进行worker id碰撞检测,直至得到最小未被使用worker id,再利用该worker id注册生成器并启动,完成生成器启动初始化任务。
83.另外,结合图6,id生成器实例如发生异常退出,已经注册的ip信息可能被长期占用,为及时回收生成器实例注册的ip信息,标识生成装置支持至少两种策略回收方式。第一:实例消亡检测回收,当生成器实例正常消亡时触发该策略,释放实例注册的ip信息;第二:每次生成器实例注册ip有时限要求,当注册时限超过1/2时将自动续期,如果实例异常终止退出,将在有限的时间内自动回收被注册的ip资源。
84.上述实施例主要从装置(设备)的角度对本技术实施例提供的方案进行了介绍。可以理解的是,为了实现上述方法,装置或设备包含了执行各个方法流程相应的硬件结构和/或软件模块,这些执行各个方法流程相应的硬件结构和/或软件模块可以构成一个物料信息的确定装置。本领域技术人员应该很容易意识到,结合本文中所发明的实施例描述的各示例的算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
85.本技术实施例可以根据上述方法示例对装置或设备进行功能模块的划分,例如,装置或设备可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
86.图7是根据一示例性实施例示出的标识生成装置的结构示意图。参照图7所示,本技术实施例提供的标识生成装置40包括获取单元401以及处理单元402。
87.获取单元401,用于接收客户端的标识生成请求,并获取当前时间戳;标识生成请求用于请求标识生成器生成标识,标识生成请求包括客户端对应的数据库表编号;处理单元402,用于根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识;处理单元402,还用于对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。
88.可选的,处理单元402,具体用于:对当前时间戳、数据库表编号以及标识生成器的编号进行移位运算,得到临时标识。
89.可选的,处理单元402还用于:在临时标识与缓存器中的标识相同的情况下,则重新执行移位运算,直至生成的临时标识与缓存器中的标识不同为止。
90.可选的,标识生成请求还包括请求生成的标识数量;处理单元402,具体用于:根据当前时间戳、数据库表编号以及标识生成器的编号,按照全局递增的顺序生成多个临时标识;临时标识的数量与标识生成请求中的标识数量相同。
91.可选的,处理单元402还用于:在临时标识与缓存器中的标识不同的情况下,将临时标识添加到缓存器中。
92.可选的,将临时标识添加到缓存器中之后,处理单元402还用于:获取临时标识在缓存器中的缓存时长以及读取次数;在缓存时长大于或者等于预设时长,或者,读取次数小于或者等于预设次数的情况下,将临时标识从缓存器中删除。
93.可选的,处理单元402还用于:获取标识生成器的主机地址,并根据主机地址,生成主机编号;对主机地址进行地址碰撞检测,以确定主机地址是否重复注册;在主机地址未重
复注册的情况下,对主机编号进行编号碰撞检测,以确定主机编号是否重复注册;在主机编号未重复注册的情况下,将主机编号确定为标识生成器的编号。
94.可选的,处理单元402还用于:在主机编号重复注册的情况下,按照预设值对主机编号进行递增,并对递增后的主机编号进行编号碰撞检测,直至主机地址未重复注册或者主机编号大于预设阈值为止。
95.图8是本技术提供的一种电子设备的结构示意图。如图8,该电子设备50可以包括至少一个处理器501以及用于存储处理器可执行指令的存储器502其中,处理器501被配置为执行存储器502中的指令,以实现上述实施例中的标识生成方法。
96.另外,电子设备50还可以包括通信总线503以及至少一个通信接口504。
97.处理器501可以是一个处理器(central processing units,cpu),微处理单元,asic,或一个或多个用于控制本技术方案程序执行的集成电路。
98.通信总线503可包括一通路,在上述组件之间传送信息。
99.通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。
100.存储器502可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器501相连接。存储器也可以和处理器501集成在一起。
101.其中,存储器502用于存储执行本技术方案的指令,并由处理器501来控制执行。处理器501用于执行存储器502中存储的指令,从而实现本技术方法中的功能。
102.作为一个示例,结合图7,标识生成装置40中的获取单元401以及处理单元402实现的功能与图8中的处理器501的功能相同。
103.在具体实现中,作为一种实施例,处理器501可以包括一个或多个cpu,例如图8中的cpu0和cpu1。
104.在具体实现中,作为一种实施例,电子设备50可以包括多个处理器,例如图8中的处理器501和处理器507。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
105.在具体实现中,作为一种实施例,电子设备50还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户对象的输入。例如,输入设备506可以
是鼠标、键盘、触摸屏设备或传感设备等。
106.本领域技术人员可以理解,图8中示出的结构并不构成对电子设备50的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
107.另外,本技术还提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述实施例所提供的标识生成方法。
108.另外,本技术还提供一种计算机程序产品,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述实施例所提供的标识生成方法。
109.本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。

技术特征:
1.一种标识生成方法,其特征在于,所述方法包括:接收客户端的标识生成请求,并获取当前时间戳;所述标识生成请求用于请求标识生成器生成标识,所述标识生成请求包括所述客户端对应的数据库表编号;根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,生成临时标识;对所述临时标识进行去重校验,在所述临时标识与缓存器中的标识不同的情况下,将所述临时标识确定为唯一标识,并输出所述唯一标识。2.根据权利要求1所述的标识生成方法,其特征在于,所述根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,生成临时标识,包括:对所述当前时间戳、所述数据库表编号以及所述标识生成器的编号进行移位运算,得到所述临时标识。3.根据权利要求2所述的标识生成方法,其特征在于,所述方法还包括:在所述临时标识与所述缓存器中的标识相同的情况下,则重新执行所述移位运算,直至生成的所述临时标识与所述缓存器中的标识不同为止。4.根据权利要求1所述的标识生成方法,其特征在于,所述标识生成请求还包括请求生成的标识数量;所述根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,生成临时标识,包括:所述根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,按照全局递增的顺序生成多个所述临时标识;所述临时标识的数量与所述标识生成请求中的所述标识数量相同。5.根据权利要求4所述的标识生成方法,其特征在于,所述方法还包括:在所述临时标识与缓存器中的标识不同的情况下,将所述临时标识添加到所述缓存器中。6.根据权利要求5所述的标识生成方法,其特征在于,所述将所述临时标识添加到所述缓存器中之后,所述方法还包括:获取所述临时标识在所述缓存器中的缓存时长以及读取次数;在所述缓存时长大于或者等于预设时长,或者,所述读取次数小于或者等于预设次数的情况下,将所述临时标识从所述缓存器中删除。7.根据权利要求1所述的标识生成方法,其特征在于,所述方法还包括:获取所述标识生成器的主机地址,并根据所述主机地址,生成主机编号;对所述主机地址进行地址碰撞检测,以确定所述主机地址是否重复注册;在所述主机地址未重复注册的情况下,对所述主机编号进行编号碰撞检测,以确定所述主机编号是否重复注册;在所述主机编号未重复注册的情况下,将所述主机编号确定为所述标识生成器的编号。8.根据权利要求7所述的标识生成方法,其特征在于,所述方法还包括:在所述主机编号重复注册的情况下,按照预设值对所述主机编号进行递增,并对递增后的所述主机编号进行编号碰撞检测,直至所述主机地址未重复注册或者所述主机编号大于预设阈值为止。9.一种标识生成装置,其特征在于,所述装置包括获取单元以及处理单元;
所述获取单元,用于接收客户端的标识生成请求,并获取当前时间戳;所述标识生成请求用于请求标识生成器生成标识,所述标识生成请求包括所述客户端对应的数据库表编号;所述处理单元,用于根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,生成临时标识;所述处理单元,还用于对所述临时标识进行去重校验,在所述临时标识与缓存器中的标识不同的情况下,将所述临时标识确定为唯一标识,并输出所述唯一标识。10.根据权利要求9所述的标识生成装置,其特征在于,所述处理单元,具体用于:对所述当前时间戳、所述数据库表编号以及所述标识生成器的编号进行移位运算,得到所述临时标识。11.根据权利要求10所述的标识生成装置,其特征在于,所述处理单元还用于:在所述临时标识与所述缓存器中的标识相同的情况下,则重新执行所述移位运算,直至生成的所述临时标识与所述缓存器中的标识不同为止。12.根据权利要求9所述的标识生成装置,其特征在于,所述标识生成请求还包括请求生成的标识数量;所述处理单元,具体用于:所述根据所述当前时间戳、所述数据库表编号以及所述标识生成器的编号,按照全局递增的顺序生成多个所述临时标识;所述临时标识的数量与所述标识生成请求中的所述标识数量相同。13.根据权利要求12所述的标识生成装置,其特征在于,所述处理单元还用于:在所述临时标识与缓存器中的标识不同的情况下,将所述临时标识添加到所述缓存器中。14.根据权利要求13所述的标识生成装置,其特征在于,所述将所述临时标识添加到所述缓存器中之后,所述处理单元还用于:获取所述临时标识在所述缓存器中的缓存时长以及读取次数;在所述缓存时长大于或者等于预设时长,或者,所述读取次数小于或者等于预设次数的情况下,将所述临时标识从所述缓存器中删除。15.根据权利要求9所述的标识生成装置,其特征在于,所述处理单元还用于:获取所述标识生成器的主机地址,并根据所述主机地址,生成主机编号;对所述主机地址进行地址碰撞检测,以确定所述主机地址是否重复注册;在所述主机地址未重复注册的情况下,对所述主机编号进行编号碰撞检测,以确定所述主机编号是否重复注册;在所述主机编号未重复注册的情况下,将所述主机编号确定为所述标识生成器的编号。16.根据权利要求15所述的标识生成装置,其特征在于,所述处理单元还用于:在所述主机编号重复注册的情况下,按照预设值对所述主机编号进行递增,并对递增后的所述主机编号进行编号碰撞检测,直至所述主机地址未重复注册或者所述主机编号大于预设阈值为止。17.一种电子设备,其特征在于,包括:处理器、用于存储所述处理器可执行的指令的存储器;其中,所述处理器被配置为执行指令,以实现权利要求1-8中任一项所述的标识生成
方法。18.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-8中任一项所述的标识生成方法。

技术总结
本申请提供一种标识生成方法、装置、电子设备及存储介质,涉及计算机技术领域,用于解决现有技术中存在的生成的标识重复问题。该方法包括:接收客户端的标识生成请求,并获取当前时间戳;标识生成请求用于请求标识生成器生成标识,标识生成请求包括客户端对应的数据库表编号;根据当前时间戳、数据库表编号以及标识生成器的编号,生成临时标识;对临时标识进行去重校验,在临时标识与缓存器中的标识不同的情况下,将临时标识确定为唯一标识,并输出唯一标识。唯一标识。唯一标识。


技术研发人员:刘居贤
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2023.05.12
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐