掌桥专利:专业的专利平台
掌桥专利
首页

基于分布式系统的标识生成方法、装置、设备和存储介质

文献发布时间:2023-06-19 10:32:14


基于分布式系统的标识生成方法、装置、设备和存储介质

技术领域

本申请涉及计算机技术领域,特别是涉及一种基于分布式系统的标识生成方法、装置、设备和存储介质。

背景技术

随着计算机技术的发展,在多类软件系统使用场景中均会使用标识来进行业务唯一性验证,比如使用序列号用作交易流水号等。尤其是在分布式系统中,高并发的应用场景对标识的需求量非常大。

传统技术主要是应用数据库的自增模式进行序列号的生成,保证序列号用作标识的唯一性。然而,由于数据库本身的限制,此种生成方式存在性能瓶颈,在高并发的应用场景下,标识的生成效率低下。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高标识生成效率的基于分布式系统的标识生成方法、装置、计算机设备和存储介质。

一种基于分布式系统的标识生成方法,所述方法包括:

获取目标数据库类型以及标识生成参数;

通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接;

通过所述目标插件,根据所述标识生成参数生成多个标识;

通过所述目标插件,将所述多个标识存储至所述目标数据库的标识记录数据表中,并为所述多个标识相应添加表示可用状态的标志位。

在一个实施例中,所述通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接,包括:通过嵌入应用层的目标插件,查询与所述目标数据库类型匹配的数据库连接配置和数据库连接驱动,并通过所述目标插件根据所述数据库连接配置,将所述数据库连接驱动配置到所述数据持久层中;在所述数据持久层,通过所述目标插件采用所述数据库连接驱动创建与所述目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,所述标识生成参数包括预设数量和预设步长,所述标识包括序列号和所述序列号相应的逻辑主键;所述通过所述目标插件,根据所述标识生成参数生成多个标识,包括:当所述目标数据库中已存在标识记录数据表、且所述标识记录数据表中已存储有序列号时,在所述应用层,通过所述目标插件根据所述标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从所述首个序列号开始,按照所述预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到所述预设数量。

在一个实施例中,所述当所述目标数据库中已存在标识记录数据表、且所述标识记录数据表中已存储有序列号时,在所述应用层,通过所述目标插件根据所述标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从所述首个序列号开始,按照所述预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到所述预设数量,包括:当所述目标数据库中已存在标识记录数据表、所述标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,则通过所述目标插件将所述满足回收条件的序列号的标志位,更新为表示可用状态;在所述应用层,通过所述目标插件根据所述标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从所述首个序列号开始,按照所述预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到所述预设数量。

在一个实施例中,所述在所述应用层,通过所述目标插件根据所述标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从所述首个序列号开始,按照所述预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到所述预设数量,包括:当所述目标数据库中已存在标识记录数据表、且所述标识记录数据表中已存储有序列号时,通过所述目标插件查询所述标识记录数据表中存储的、且相应标志位表示已用状态的最大序列号,并将所述最大序列号回传至所述应用层;在所述应用层,通过所述目标插件根据所述最大序列号确定本次生成的首个序列号,并从所述首个序列号开始,按照所述预设步长选取下一个序列号;当所述标识记录数据表不存在与选取的所述序列号相同、且相应标志位表示可用状态的序列号时,通过所述目标插件生成选取的所述序列号及与选取的所述序列号相应的逻辑主键,并返回所述按照所述预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到所述预设数量。

在一个实施例中,所述标识包括序列号和所述序列号相应的逻辑主键,所述方法还包括:获取历史的序列号使用时间分布;根据所述序列号使用时间分布确定序列号生成时间段;在当前时间节点满足所述序列号生成时间段时,执行所述通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接的步骤。

在一个实施例中,所述通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接之后,所述方法还包括:通过所述目标插件创建事务,并将事务提交方式设置为隔离提交方式;所述通过所述目标插件,将所述多个标识存储至所述目标数据库的标识记录数据表中,并为所述多个标识相应添加表示可用状态的标志位之后,所述方法还包括:通过所述目标插件提交所述事务。

一种基于分布式系统的标识生成装置,所述装置包括:

获取模块,用于获取目标数据库类型以及标识生成参数;

连接模块,用于通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接;

生成模块,用于通过所述目标插件,根据所述标识生成参数生成多个标识;

存储模块,用于通过所述目标插件,将所述多个标识存储至所述目标数据库的标识记录数据表中,并为所述多个标识相应添加表示可用状态的标志位。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取目标数据库类型以及标识生成参数;

通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接;

通过所述目标插件,根据所述标识生成参数生成多个标识;

通过所述目标插件,将所述多个标识存储至所述目标数据库的标识记录数据表中,并为所述多个标识相应添加表示可用状态的标志位。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取目标数据库类型以及标识生成参数;

通过嵌入应用层的目标插件,调用所述目标插件在数据持久层封装的接口,创建与所述目标数据库类型相匹配的目标数据库之间的连接;

通过所述目标插件,根据所述标识生成参数生成多个标识;

通过所述目标插件,将所述多个标识存储至所述目标数据库的标识记录数据表中,并为所述多个标识相应添加表示可用状态的标志位。

上述基于分布式系统的标识生成方法、装置、计算机设备和存储介质,将标识的生成过程迁移至应用层中进行,在获取目标数据库类型以及标识生成参数后,自动通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口与数据库连接以及进行数据库操作,以及通过该目标插件在应用层生成多个标识,再将这些生成的标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位,以供后续直接使用。这样既有效改善了传统技术下依赖数据库自增模式在高并发场景下的性能瓶颈,而且目标插件是嵌入应用软件的应用层的工具,通用性强且稳定,能够大大提升标识生成效率。

附图说明

图1为一个实施例中基于分布式系统的标识生成方法的应用环境图;

图2为一个实施例中基于分布式系统的标识生成方法的流程示意图;

图3为一个实施例中基于分布式系统的标识生成方法的逻辑示意图;

图4为一个实施例中基于分布式系统的标识生成装置的结构框图;

图5为另一个实施例中基于分布式系统的标识生成装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的基于分布式系统的标识生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102获取目标数据库类型以及标识生成参数;通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接;通过目标插件,根据标识生成参数生成多个标识;通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位。其中,目标数据库可位于服务器104中。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在另外的实施例中,该基于分布式系统的标识生成方法,也可以通过终端102上运行的应用软件来执行,还可以通过终端102上运行的应用软件的应用层嵌入的目标插件来执行。

本申请中,分布式系统:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。

在一个实施例中,如图2所示,提供了一种基于分布式系统的标识生成方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤202,获取目标数据库类型以及标识生成参数。

其中,数据库类型是指数据库的名称或者编号等,比如MySQL数据库、Oracle数据库、Informix数据库或者h2数据库等,或者比如数据库1(实际是指MySQL数据库)、数据库2(实际是指Oracle数据库)、数据库3(实际是指Informix数据库)或者数据库4(实际是指h2数据库)等。目标数据库类型是指用户指定的数据库类型。

在一个实施例中,目标数据库类型属于关系型数据库。关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。

其中,标识是具有唯一性的字符串,可用作业务唯一性验证的依据。

在一个实施例中,标识包括序列号,序列号为全数字序列。

在一个实施例中,标识包括序列号和该序列号对应的逻辑主键。逻辑主键是具有唯一性,不具有任何业务属性的一串字符串。逻辑主键具体可以是32位通用唯一识别码(Universally Unique Identifier)。在本实施例中,可以复用相同的序列号,这些序列号和相应的逻辑主键共同用作业务唯一性验证的依据。

其中,标识生成参数是指生成标识的配置参数,包括预设数量、预设步长和预设位数中的至少一种。预设数量是指期望生成的序列号的数量。预设步长是指序列号之间的间隔长度。预设位数是指序列号的位数。比如,假设预设位数为6,预设步长为2,预设数量为100,那么第一个序列号为000000,第二个序列号为0000002,第三个序列号为000004....一共生成100个这样的序列号。

具体地,终端上可运行有应用软件,应用软件可提供输入入口,用户可从该输入入口输入目标数据库类型以及标识生成参数。

举例说明,参考图3,该图示出了一个实施例中基于分布式系统的标识生成方法的逻辑示意图。用户可设置数据库类型以及定义标识生成参数。

步骤204,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接。

其中,目标插件是第三方提供的嵌入应用软件的工具包,也可称为第三方工具包。应用软件可以指终端上除系统软件之外的其他能够独立运行的软件。通常目标插件无法在终端上独立运行,需要嵌入可独立运行的应用软件中。

通常,在应用软件的分层式架构中,主要可分为:1)展示层:处理、收集、分发用户请求,返回数据;2)应用层:业务数据的逻辑处理;3)数据持久层:连接数据库,对数据的操作层,供应用层的方法调用。由用户的请求到数据库的流程为:用户请求->展示层->应用层->数据持久层->数据库。展示层、应用层、数据持久层都是应用软件的一部分。

在本申请的实施例中,目标插件嵌入应用软件后,可在应用层批量生成标识,在数据持久层连接数据库以及对数据库中的数据进行操作。

具体地,终端上运行的应用软件在获取目标数据库类型以及标识生成参数后,可以立即调用嵌入应用层的目标插件,以生成标识。应用软件也可在特定的时间段调用嵌入应用层的目标插件,以生成标识。

其中,目标插件在数据持久层封装的接口,是指目标插件在数据持久层封装的、供应用层调用的接口方法。该接口方法在目标插件开发时创建和配置。

具体地,在用户指定目标数据库类型后,目标插件则会调用在数据持久层封装的接口,创建与该目标数据库类型相匹配的目标数据库之间的连接。

比如,用户指定的MySQL数据库,则创建与MySQL数据库之间的连接;或者,用户指定的Oracle数据库,则创建与Oracle数据库之间的连接。

在一个实施例中,步骤204,包括:通过嵌入应用层的目标插件,查询与目标数据库类型匹配的数据库连接配置和数据库连接驱动,并通过目标插件根据数据库连接配置,将数据库连接驱动配置到数据持久层中;在数据持久层,通过目标插件采用数据库连接驱动创建与目标数据库类型相匹配的目标数据库之间的连接。

其中,数据库连接规范是指由应用软件连接数据库的接口规范,不同的数据库类型有不同的实现。数据库连接驱动指的是针对某一种数据库对数据库连接规范的实现。数据库连接配置指的是将数据库连接驱动配置到应用软件中的行为。在本申请中,将多种数据库连接驱动所关联的数据库连接配置模板化,得到数据库连接模板。这样后续在使用数据库连接模板时,仅需要带入入口参数,即可得到当前应该使用的数据库连接配置和数据库连接驱动。

具体地,目标插件在得到目标数据库类型后,根据该目标数据库类型确定入口参数,将该入口参数代入数据库连接模板,得到与目标数据库类型匹配的数据库连接配置和数据库连接驱动。目标插件然后根据数据库连接配置,将数据库连接驱动配置到数据持久层中,在数据持久层,通过目标插件采用数据库连接驱动创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个具体的实施例中,目标插件是在软件应用层的公共工具包,开发平台使用Java编程语言开发的集成环境,用Java语言编写业务逻辑,用SQL语言编写关系型数据库DDL/DML,以兼容关系型数据库。其中,目标插件可与多类型的关系型数据库适配。具体地,在创建Java工程时,在工程内增加数据库定义类,定义数据库适配键值对Map,键存储数据库类型,值存储DML语句,其中DML语句中使用占位符,在Java编译阶段产生真实的DML语句;每增加一个数据库类型,需要新增一套键值对并存储在总Map中。另外,还设置数据库的JDBC配置集合,根据数据库类型组装JDBC模板;以及设置数据库的JDBC驱动,以供Java工程连接数据库。其中,JDBC(Java Database Connectivity),Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口。Java是一门面向对象编程语言。

另外的实施例,目标插件中还预先编写了适配不同类型数据库的DDL/DML的SQL,适配了不同数据库的语法特性,可以在操作数据库时直接读取使用。

上述实施例中,目标插件可适配多种数据库,在明确当前用户指定的数据库类型时,即可调用模板生成相应的配置和驱动,增强了软件系统的可移植性以及扩展性,而且主要逻辑在应用层,可以很方便的扩展新的数据库。

例如,应用软件需要将数据库类型从Oracle更换为MySQL,两种数据库具备不同的数据类型,MySQL的BIGINT类型对应Oracle的NUMBER(16,0)类型,MySQL的TIMESTAMP类型对应Oracle的DATE类型,在建表的DDL语句上不通用。在本申请中,目标插件对这两类数据库进行了适配,应用软件调用目标插件时只需要设定好数据库类型,即可完成对数据库类型的切换设置。

继续参考图3,目标插件在获取数据库类型和标识生成参数后,可判断是否超过重试次数。重试是指判断标识生成未成功(没有生成足够数量的序列号)时,重新执行标识生成操作,直至生成了足够数量的序列号或者达到重试上限。每次重试会将重试次数加一,超过重试的预设上限后就无法重试。重试上限比如10次。若未超过重试次数则与数据库建立连接,若超过重试次数则结束。

步骤206,通过目标插件,根据标识生成参数生成多个标识。

在一个实施例中,标识生成参数包括预设数量和预设步长,标识包括序列号和序列号相应的逻辑主键;步骤206,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

具体地,目标插件可在数据持久层访问目标数据库,查询目标数据库中是否存在标识记录数据表。若目标数据库中不存在标识记录数据表,目标插件则利用目标数据库匹配的数据库定义语句(DDL)创建存储标识的标识记录数据表,任意选取一个序列号作为首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

若目标数据库中存在标识记录数据表,目标插件可在目标数据库中存在标识记录数据表,且标识记录数据表中已存储有序列号时,查询标识记录数据表中的最大序列号,选取最大序列号的下一个序列号作为首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

在一个实施例中,目标插件可先判断标识记录数据表中已存储的序列号中是否存在满足回收条件的序列号。

在不存在满足回收条件的序列号时,直接生成预设数量的序列号。在存在满足回收条件的序列号时,先回收满足回收条件的序列号,再生成序列号,回收的序列号的数量和生成的序列号的数量之和不少于预设数量。

举例说明,继续参考图3,目标插件在与目标数据库建立连接之后,判断是否要回收序列号。在需要回收序列号时进行序列号回收,再查询标识记录数据表中已使用的最大序列号;在不需要进行序列号回收时,则直接查询标识记录数据表中已使用的最大序列号。

在一个实施例中,当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量,包括:当目标数据库中已存在标识记录数据表、标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,则通过目标插件将满足回收条件的序列号的标志位,更新为表示可用状态;在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

其中,标识记录数据表中存储有序列号、序列号相应的逻辑主键以及序列号相应的至少一个标志位。这至少一个标志位可以包括表示回收状态的回收标志位。回收状态包括表示可使用的已回收状态。

在一个实施例中,满足回收条件的序列号,可以是无效的业务数据对应的序列号,或者,无法查询到此序列号所使用的业务数据,等等。对满足回收条件的序列号进行回收,具体可以是将满足回收条件的序列号的回收标志位更新为表示已回收状态的数值。已回收状态对应的回收标志位的数值比如为0。

具体地,目标插件在目标数据库中已存在标识记录数据表、标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,通过目标插件将满足回收条件的序列号的回收标志位,更新为表示可使用的已回收状态的数值。目标插件再在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

上述实施例中,通过直接修改状态位即可完成序列号的回收,只需要执行一次更新操作,相较于现有的使用数据库原生的自增长特性生成序列号,由于自增长序列需要保持唯一性,其回收序列号时需要将原本的记录删除才能再次使用,需要执行一次删除操作,再执行一次插入操作。本申请可以在花费很少资源的情况下做到序列号的回收。

在一个实施例中,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,通过目标插件查询标识记录数据表中存储的、且相应标志位表示已用状态的最大序列号,并将最大序列号回传至应用层;在应用层,通过目标插件根据最大序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同、或者与选取的序列号相同的序列号的相应标志位表示已用状态时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

具体地,计算机设备在回收序列号后,通过目标插件查询标识记录数据表中存储的最大序列号,并将最大序列号回传至应用层;在应用层,通过目标插件根据最大序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同的序列号时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,目标插件还可从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同的序列号、或者与选取的序列号相同的序列号的回收状态位不为已回收状态的数值时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。可以理解,在序列号需求量较大的场景下,由于序列号相应的逻辑主键可以与序列号共同用于业务唯一性验证,那么可以重复利用序列号,将相同的序列号应用于无交集的至少两个业务场景中。也就是说,标识记录数据表可以存在至少两个相同的序列号,但相同的序列号的状态不能同时为可用。

在另外的实施例中,序列号相应的至少一个标志位还可以包括用于表示使用状态的使用标志位。使用状态包括已用状态和可用状态。已用状态表示该序列号已经被使用,可用状态表示该序列号尚未被使用。

可以理解,在序列号需求量较大的场景下,由于序列号相应的逻辑主键可以与序列号共同用于业务唯一性验证,那么可以重复利用序列号,将相同的序列号应用于无交集的至少两个业务场景中。

具体地,若目标数据库中存在标识记录数据表,目标插件可在目标数据库中存在标识记录数据表,且标识记录数据表中已存储有序列号时,查询标识记录数据表中的序列号相应的使用标志位,确定已使用的最大序列号,选取该最大序列号的下一个序列号作为首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同、或者与选取的序列号相同的序列号的相应标志位表示已用状态时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

具体地,目标插件可按照预设步长依次确定下一次生成的序列号,查看标识记录数据表是否存在与该序列号相同的序列号;若否,则创建该序列号以及该序列号相应的逻辑主键,再确定下一次生成的序列号;则是,则查看该序列号相应的使用标志位,若表示已用状态,则复用该序列号,生成复用的序列号相应的逻辑主键,若表示可用状态,则跳过,再确定下一次生成的序列号;依此循环直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

举例说明,继续参考图3,目标插件在查询到已使用的最大序列号之后,进入循环体,生成序列号和序列号相应的逻辑主键,并判断是否超过循环次数。判断是否超过循环次数实质是指,判断生成的序列号的数量和回收的序列号的数量之和是否达到预设数量,在生成的序列号的数量和回收的序列号的数量之和未达到预设数量时,继续生成序列号和序列号相应的逻辑主键;在生成的序列号的数量和回收的序列号的数量之和达到预设数量时,判断预设数量的序列号是否生成成功(包括回收),成功则结果,否则重试。其中,目标插件在循环中设置了一个计数器,每成功生成一条序列号记录,计数器+1。在循环结束时,判断计数器计数和和回收的序列号的数量之和与预设数量是否一致。若一致,则认为本次生成成功。

举例说明,假设预设位数为9,预设步长为2,预设数量为100,首个序列号为000001000,则第二个序列号应当为0000001002,目标插件查看该序列号0000001002是否在标识记录数据表中,若不在,则创建序列号0000001002和其相应的逻辑主键,若在,则查看序列号0000001002相应的表示使用状态的标志位,若为已用状态(1),则复用该序列号,生成复用的序列号相应的逻辑主键,若为可用状态(0),则跳过,再确定下一次应当生成的序列号000000004,目标插件查看该序列号0000001004是否在标识记录数据表中,若不在,则创建序列号0000001004和其相应的逻辑主键,若在,则查看序列号0000001004相应的表示使用状态的标志位,若为已用状态(1),则复用该序列号,生成复用的序列号相应的逻辑主键,若为可用状态(0),则跳过,再确定下一次应当生成的序列号000000006…依此循环直到生成的序列号的数量达到100。

可以理解,在序列号对应存在回收标志位和使用标志位时,一个序列号的回收标志位表示已回收状态,则使用标志位表示可用状态;一个序列号的回收标志位不表示已回收状态,则使用标志位可以表示可用状态也可表示已用状态。

上述实施例中,基于序列号相应的逻辑主键可以与序列号共同用于业务唯一性验证的先验条件,对已使用的序列号进行复用,可以降低序列号生成量,减少资源消耗。

在一个实施例中,当标识记录数据表中已使用的最大序列号的位数小于预设位数时,目标插件可先案号已使用的最大序列号的位数生成序列号,再按照预设位数对生成的序列号执行补齐位数操作。比如,若标识记录数据表中已经存在数据,目标插件会查找已使用的最大序列号,并以此为序列号生成的起点。比如已存在的最大序列号为12000000,位数为8位。假设预设步长为1,则下一个序列号应该是12000001。若设定需要的序列号为10位,即预设位数为10位,则需要补零,即生成的序列号为0012000001;若设定需要的序列号小于8位,则算法会提示设定的位数小于已存在的序列号,而报错。补齐位数操作一般不执行,会在序列号设定的位数发生改变的情况下进行。位数由小改大可以直接设定位数,位数由大改小则需要回收或者初始化大位数的序列号。

在一个实施例中,继续参考图3,目标插件在查询到已使用的最大序列号之后,还可以判断是否初始化标识记录数据表。当标识记录数据表中记录的序列号数量超过预设的上限时,需要清理已使用且未回收的旧序列号数据,即删除序列号记录表中的数据。但数据初始化不建议频繁进行,删除序列号记录存在风险,本申请保留了初始化标识记录数据表的功能。

步骤208,通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位。

具体地,目标插件在生成标识时,可将生成的标识存储至目标数据库的标识记录数据表中,并为该标识相应添加表示可用状态的标志位。

在一个具体的实施例中,标识包括序列号和序列号对应的逻辑主键。目标插件在生成序列号和序列号对应的逻辑主键后,将生成序列号和序列号对应的逻辑主键存储至目标数据库的标识记录数据表中,并更新该条数据的标志位。其中,即使是复用序列号,也会存储一条新的数据记录。

其中,在标识存在一个回收标志位时,在生成标识后,将为该标识相应添加回收标志位,添加的回收标志位的数值为表示可使用的已回收状态的数值。在标识还存在一个使用标志位时,在生成标识后,还将为该标识相应添加使用标志位,添加的使用标志位的数值为表示可使用的未用状态的数值。

在一个实施例中,在生成序列号之后,可供多类软件系统使用场景,使用序列号进行业务信息的检索,如交易流水号,保险单单号等。

上述基于分布式系统的标识生成方法,将标识的生成过程迁移至应用层中进行,在获取目标数据库类型以及标识生成参数后,自动通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口与数据库连接以及进行数据库操作,以及通过该目标插件在应用层生成多个标识,再将这些生成的标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位,以供后续直接使用。这样既有效改善了传统技术下依赖数据库自增模式在高并发场景下的性能瓶颈,而且目标插件是嵌入应用软件的应用层的工具,通用性强且稳定,能够大大提升标识生成效率,在分布式系统的高并发场景下尤为明显。

在一个实施例中,标识包括序列号和序列号相应的逻辑主键,该基于分布式系统的标识生成方法还包括:获取历史的序列号使用时间分布;根据序列号使用时间分布确定序列号生成时间段;在当前时间节点满足序列号生成时间段时,执行通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接的步骤。

其中,序列号使用时间分布可以是目标周期内序列号的使用量在时间上的分布情况。具体地,终端可获取历史的序列号使用时间分布,根据序列号使用时间分布,选取使用量占比最低的时间段用作序列号生成时间段,在该序列号生成时间段调用嵌入应用层的目标插件,以生成序列号。

举例说明,例如存在一个交易平台,每天的交易单数为100000单,每单都需要一个序列号。根据统计,每天02:00至05:00的交易量平均为1000单,时长占比12.5%,交易量占比1%。该时段为每天交易量占比最低的时段,故可定义该时段为业务不繁忙时段。在该时段执行定时任务,根据统计的平均交易数量,预设新建序列号数量略大于统计数量,供全天的实际业务消费(实际业务数量若超出部分可消费的序列号数量,则实时生成新的序列号)。该策略将序列号自增生成给数据库带来的压力进行了削弱峰值的处理,在业务不繁忙时段完成了序列号的生成,以供全天业务的序列号消费。

在本实施例中,目标插件可批量生成序列号,可以自由调整单次生成数量,可在一次事务中批量生成万数量级的序列号,而且可以选择业务不繁忙时执行,这样可以缓解数据库重复生成序列号而造成数据库服务器的压力,平衡服务器资源,增强了目标插件的可用性。

在一个实施例中,步骤204之后,该基于分布式系统的标识生成方法还包括:通过目标插件创建事务,并将事务提交方式设置为隔离提交方式;步骤208之后,该基于分布式系统的标识生成方法还包括:通过目标插件提交事务。

具体地,目标插件在开发时,可配置数据库隔离级别以屏蔽无效数据读取。如,将数据库隔离级别设置在READ-COMMITTED以上(READ-COMMITTED等级以上可以屏蔽无效数据读取)。后续在目标插件访问数据库时,通过目标插件创建事务,将逻辑和算法写在事务内部,在执行完数据操作语句(DML语句)之后,再执行事务的提交。通过隔离提交的方式,屏蔽了无效数据读取的可能性,保证了在高并发下不会出现重号。增加了高并发下目标插件的稳定性。其中,READ-COMMITTED表示:读已提交的事务隔离等级。

例如,同时发生两个事务,事务1将字段A的值从0修改为1,此时事务1尚未提交。此时事务2尝试读取字段A的值,若不设置隔离提交,则读取到的A的值为1,此时事务1发生回滚,将A的值重新修改为0,事务2读取到A的值仍然为1,则事务2发生了脏读,也就是无效数据读取。本申请中,利用spring框架的事务模板将事务隔离等级设置为READ-COMMITTED,也就是上述描述中,启用了隔离提交。当事务1没有提交时,事务2读取到A的值是0,则不会发生无效数据读取。其中,Spring是一个开源的Java平台,它为容易而快速的开发出耐用的Java应用程序提供了全面的基础设施。

举例说明,继续参考图3,目标插件在与目标数据库建立连接之后,创建事务,将事务管理运用在生成序列号的逻辑中。目标插件再在成功生成预设数量的序列号之后,提交事务,再结束流程。

应该理解的是,虽然上述实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种基于分布式系统的标识生成装置,包括:获取模块401、连接模块402、生成模块403和存储模块404,其中:

获取模块401,用于获取目标数据库类型以及标识生成参数;

连接模块402,用于通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接;

生成模块403,用于通过目标插件,根据标识生成参数生成多个标识;

存储模块404,用于通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位。

在一个实施例中,连接模块402还用于通过嵌入应用层的目标插件,查询与目标数据库类型匹配的数据库连接配置和数据库连接驱动,并通过目标插件根据数据库连接配置,将数据库连接驱动配置到数据持久层中;在数据持久层,通过目标插件采用数据库连接驱动创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,标识生成参数包括预设数量和预设步长,标识包括序列号和序列号相应的逻辑主键;生成模块403还用于当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

在一个实施例中,生成模块403还用于当目标数据库中已存在标识记录数据表、标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,则通过目标插件将满足回收条件的序列号的标志位,更新为表示可用状态;在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,生成模块403还用于当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,通过目标插件查询标识记录数据表中存储的、且相应标志位表示已用状态的最大序列号,并将最大序列号回传至应用层;在应用层,通过目标插件根据最大序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同、或者与选取的序列号相同的序列号的相应标志位表示已用状态时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,标识包括序列号和序列号相应的逻辑主键,获取模块401还获取历史的序列号使用时间分布;根据序列号使用时间分布确定序列号生成时间段;连接模块402还用于在当前时间节点满足序列号生成时间段时,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,如图5所示,基于分布式系统的标识生成装置,还包括:事务模块405,用于在通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接之后,通过目标插件创建事务,并将事务提交方式设置为隔离提交方式;在通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位之后,通过目标插件提交事务。

上述基于分布式系统的标识生成装置,将标识的生成过程迁移至应用层中进行,在获取目标数据库类型以及标识生成参数后,自动通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口与数据库连接以及进行数据库操作,以及通过该目标插件在应用层生成多个标识,再将这些生成的标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位,以供后续直接使用。这样既有效改善了传统技术下依赖数据库自增模式在高并发场景下的性能瓶颈,而且目标插件是嵌入应用软件的应用层的工具,通用性强且稳定,能够大大提升标识生成效率,在分布式系统的高并发场景下尤为明显。

关于基于分布式系统的标识生成装置的具体限定可以参见上文中对于基于分布式系统的标识生成方法的限定,在此不再赘述。上述基于分布式系统的标识生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于分布式系统的标识生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取目标数据库类型以及标识生成参数;通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接;通过目标插件,根据标识生成参数生成多个标识;通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位。

在一个实施例中,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接,包括:通过嵌入应用层的目标插件,查询与目标数据库类型匹配的数据库连接配置和数据库连接驱动,并通过目标插件根据数据库连接配置,将数据库连接驱动配置到数据持久层中;在数据持久层,通过目标插件采用数据库连接驱动创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,标识生成参数包括预设数量和预设步长,标识包括序列号和序列号相应的逻辑主键;通过目标插件,根据标识生成参数生成多个标识,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

在一个实施例中,当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量,包括:当目标数据库中已存在标识记录数据表、标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,则通过目标插件将满足回收条件的序列号的标志位,更新为表示可用状态;在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,通过目标插件查询标识记录数据表中存储的、且相应标志位表示已用状态的最大序列号,并将最大序列号回传至应用层;在应用层,通过目标插件根据最大序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同、或者与选取的序列号相同的序列号的相应标志位表示已用状态时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,标识包括序列号和序列号相应的逻辑主键,处理器执行计算机程序时还实现以下步骤:获取历史的序列号使用时间分布;根据序列号使用时间分布确定序列号生成时间段;在当前时间节点满足序列号生成时间段时,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接之后,处理器执行计算机程序时还实现以下步骤:通过目标插件创建事务,并将事务提交方式设置为隔离提交方式;通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位之后,处理器执行计算机程序时还实现以下步骤:通过目标插件提交事务。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标数据库类型以及标识生成参数;通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接;通过目标插件,根据标识生成参数生成多个标识;通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位。

在一个实施例中,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接,包括:通过嵌入应用层的目标插件,查询与目标数据库类型匹配的数据库连接配置和数据库连接驱动,并通过目标插件根据数据库连接配置,将数据库连接驱动配置到数据持久层中;在数据持久层,通过目标插件采用数据库连接驱动创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,标识生成参数包括预设数量和预设步长,标识包括序列号和序列号相应的逻辑主键;通过目标插件,根据标识生成参数生成多个标识,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量。

在一个实施例中,当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量达到预设数量,包括:当目标数据库中已存在标识记录数据表、标识记录数据表中已存储有序列号、且已存储的序列号中包括满足回收条件的序列号时,则通过目标插件将满足回收条件的序列号的标志位,更新为表示可用状态;在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,在应用层,通过目标插件根据标识记录数据表中已存储的序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长依次生成下一个序列号和下一个序列号相应的逻辑主键,直到生成的序列号的数量和回收的序列号的数量之和达到预设数量,包括:当目标数据库中已存在标识记录数据表、且标识记录数据表中已存储有序列号时,通过目标插件查询标识记录数据表中存储的、且相应标志位表示已用状态的最大序列号,并将最大序列号回传至应用层;在应用层,通过目标插件根据最大序列号确定本次生成的首个序列号,并从首个序列号开始,按照预设步长选取下一个序列号;当标识记录数据表不存在与选取的序列号相同、或者与选取的序列号相同的序列号的相应标志位表示已用状态时,通过目标插件生成选取的序列号及与选取的序列号相应的逻辑主键,并返回按照预设步长选取下一个序列号的步骤,至生成的序列号的数量和回收的序列号的数量之和达到预设数量。

在一个实施例中,标识包括序列号和序列号相应的逻辑主键,计算机程序被处理器执行时还实现以下步骤:获取历史的序列号使用时间分布;根据序列号使用时间分布确定序列号生成时间段;在当前时间节点满足序列号生成时间段时,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接。

在一个实施例中,通过嵌入应用层的目标插件,调用目标插件在数据持久层封装的接口,创建与目标数据库类型相匹配的目标数据库之间的连接之后,计算机程序被处理器执行时还实现以下步骤:通过目标插件创建事务,并将事务提交方式设置为隔离提交方式;通过目标插件,将多个标识存储至目标数据库的标识记录数据表中,并为多个标识相应添加表示可用状态的标志位之后,计算机程序被处理器执行时还实现以下步骤:通过目标插件提交事务。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 基于分布式系统的标识生成方法、装置、设备和存储介质
  • 分布式系统中的标识生成方法、装置、设备及存储介质
技术分类

06120112587439