全局序列号生成方法、装置、设备、介质和产品制造方法及图纸

技术编号:32646287 阅读:23 留言:0更新日期:2022-03-12 18:28
本公开提供了一种全局序列号生成方法,可以应用于大数据技术领域。该全局序列号生成方法包括:接收任务请求,并记录接收时刻;基于所述任务请求和所述接收时刻,获取相关序列码;基于所述接收时刻,通过上锁处理生成第一时间戳;以及基于所述相关序列码和所述第一时间戳生成所述全局序列号。本公开还提供了一种全局序列号生成装置、设备、存储介质和程序产品。存储介质和程序产品。存储介质和程序产品。

【技术实现步骤摘要】
全局序列号生成方法、装置、设备、介质和产品


[0001]本公开涉及大数据领域,具体分布式数据处理领域,更具体地涉及一种全局序列号生成方法、装置、设备、介质和程序产品。

技术介绍

[0002]开发人员在研发的过程中都用到过全局唯一序列码,例如UUID、数据库自增序列或是分布式场景中的雪花算法等。而数据库自增序列性能低,难于拓展,容易导致技术瓶颈。对于UUID,虽然简单且无网络消耗,但是由于序列码无序,查询效率低,不能趋势递增。雪花算法能大致满足产生的先后并且简单高效,但是严重依赖于服务器的时钟,如果时钟错误,则不能保证全局唯一性。

技术实现思路

[0003]鉴于上述问题,本公开提供了提高生成效率的同时保证全局唯一性的全局序列号生成的方法、装置、设备、介质和程序产品。
[0004]根据本公开的第一个方面,提供了一种全局序列号生成的方法,包括:接收任务请求,并记录接收时刻;基于所述任务请求和所述接收时刻,获取相关序列码;基于所述接收时刻,通过上锁处理生成第一时间戳;以及基于所述相关序列码和所述第一时间戳生成所述全局序列号。
[0005]根据本公开的实施例,所述基于所述任务请求和所述接收时刻获取相关序列码,包括:基于所述任务请求获取服务器标识,其中,所述服务器标识包括地址标识;基于所述接收时刻生成第二时间戳,其中所述第二时间戳的最低位的单位大于所述第一时间戳最高位的单位;生成随机码;以及基于所述服务器标识、所述第二时间戳以及所述随机码通过排序生成所述相关序列码。
[0006]根据本公开的实施例,所述服务器标识还包括服务组标识,所述服务组标识用于反映服务器所处的服务组,其中,对于同一服务器包括多个服务组标识。
[0007]根据本公开的实施例,所述基于所述接收时刻,通过上锁处理生成第一时间戳,包括:获取第二任务请求,记录第二时刻;对所述第二任务请求进行上锁,用以确保并发任务时所述第二任务请求在该时刻的唯一性;获取第一时刻,所述第一时刻对应第一任务请求,所述第一任务请求包括所述第二任务请求的上一个任务请求;判断所述第二时刻是否大于第一时刻;以及在所述第二时刻大于所述第一时刻的情况下,采用第二时刻作为所述第一时间戳。
[0008]根据本公开的实施例,所述方法还包括:在所述第二时刻不大于所述第一时刻的情况下,对所述第一时刻的数值加上固定预设数值,得到第三时刻;以及采用所述第三时刻作为所述第一时间戳。
[0009]根据本公开的实施例,所述第一时间戳包括毫秒级信息。
[0010]根据本公开的实施例,所述第二时间戳包括年月日时分秒级信息。
[0011]本公开的第二方面提供了一种全局序列号生成的装置,包括:任务接收模块、相关序列码生成模块、第一时间戳生成模块和全局序列号生成模块,其中,所述任务接收模块,用于接收任务请求,并记录接收时刻;所述相关序列码生成模块,用于基于所述任务请求和所述接收时刻,获取相关序列码;所述第一时间戳生成模块,用于基于所述接收时刻,通过上锁处理生成第一时间戳;以及所述全局序列号生成模块,用于基于所述相关序列码和所述第一时间戳生成所述全局序列号。
[0012]根据本公开的实施例,所述相关序列码生成模块包括:服务器标识生成模块、第二时间戳生成模块、随机码生成模块以及相关序列码排序模块,其中,所述服务器标识生成模块,用于基于所述任务请求获取服务器标识,其中,所述服务器标识包括地址标识;所述第二时间戳生成模块,用于基于所述接收时刻生成第二时间戳,其中所述第二时间戳的最低位的单位大于所述第一时间戳最高位的单位;所述随机码生成模块,用于生成随机码;以及所述相关序列码排序模块,用于基于所述服务器标识、所述第二时间戳以及所述随机码通过排序生成所述相关序列码。
[0013]本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述全局序列号生成的方法。
[0014]本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述全局序列号生成的方法。
[0015]本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述全局序列号生成的方法。
附图说明
[0016]通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0017]图1示意性示出了根据本公开实施例的一种全局序列号生成的方法、装置、设备、介质和程序产品的应用场景图。
[0018]图2示意性示出了根据本公开实施例的一种全局序列号生成的方法的流程图。
[0019]图3示意性示出了根据本公开实施例的一种相关序列码生成的方法的流程图。
[0020]图4A示意性示出了根据本公开实施例的一种第一时间戳生成的方法的流程图。
[0021]图4B示意性示出了根据本公开实施例的另一种第一时间戳生成的方法的流程图。
[0022]图5A示意性示出了根据本公开实施例的一种全局序列号生成装置的结构框图。
[0023]图5B示意性示出了根据本公开实施例的另一种序列号生成装置的结构框图。
[0024]图6示意性示出了根据本公开实施例的volatile的工作原理的示意图。
[0025]图7示意性示出了根据本公开实施例的适于实现全局序列号的方法的电子设备的方框图。
具体实施方式
[0026]以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细
节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0027]在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0028]在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0029]在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
[0030]在对本公开的技术方案进行描述之前,先对本领域的技术术语进行说明如下:
[0031]全局序列号:在实现分库分表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全局序列号生成的方法,其特征在于,所述方法包括:接收任务请求,并记录接收时刻;基于所述任务请求和所述接收时刻,获取相关序列码;基于所述接收时刻,通过上锁处理生成第一时间戳;以及基于所述相关序列码和所述第一时间戳生成所述全局序列号。2.根据权利要求1所述的方法,其特征在于,所述基于所述任务请求和所述接收时刻获取相关序列码,包括:基于所述任务请求获取服务器标识,其中,所述服务器标识包括地址标识;基于所述接收时刻生成第二时间戳,其中所述第二时间戳的最低位的单位大于所述第一时间戳最高位的单位;生成随机码;以及基于所述服务器标识、所述第二时间戳以及所述随机码通过排序生成所述相关序列码。3.根据权利要求2所述的方法,其特征在于,所述服务器标识还包括服务组标识,所述服务组标识用于反映服务器所处的服务组,其中,对于同一服务器包括多个服务组标识。4.根据权利要求1所述的方法,其特征在于,所述基于所述接收时刻,通过上锁处理生成第一时间戳,包括:获取第二任务请求,记录第二时刻;对所述第二任务请求进行上锁,用以确保并发任务时所述第二任务请求在该时刻的唯一性;获取第一时刻,所述第一时刻对应第一任务请求,所述第一任务请求包括所述第二任务请求的上一个任务请求;判断所述第二时刻是否大于第一时刻;以及在所述第二时刻大于所述第一时刻的情况下,采用第二时刻作为所述第一时间戳。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述第二时刻不大于所述第一时刻的情况下,对所述第一时刻的数值加上固定预设数值,得到第三时刻;以及采用所述第三时刻作为所述第一时间戳。6.根据权利要求1所述的方法,其特征在于,所述第一时间戳包括毫秒级信息。7.根据权利要求2所述的方...

【专利技术属性】
技术研发人员:邢玉博刘伟张洋迟世超
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1