CN111722918A - 业务标识码生成方法、装置、存储介质及电子设备 - Google Patents

业务标识码生成方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111722918A
CN111722918A CN201910218029.XA CN201910218029A CN111722918A CN 111722918 A CN111722918 A CN 111722918A CN 201910218029 A CN201910218029 A CN 201910218029A CN 111722918 A CN111722918 A CN 111722918A
Authority
CN
China
Prior art keywords
service
determining
segment
identification code
sequence number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910218029.XA
Other languages
English (en)
Inventor
陶希
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Wodong Tianjun Information Technology Co Ltd
Priority to CN201910218029.XA priority Critical patent/CN111722918A/zh
Publication of CN111722918A publication Critical patent/CN111722918A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种业务标识码生成方法、装置、存储介质及电子设备。本发明实施例提供的业务标识码生成方法,包括:接收第一业务的标识码生成请求,并根据接收到的标识码生成请求确定业务类型信息以及业务日期信息,然后,再根据业务类型信息以及业务日期信息确定原始序列号,并根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号,此外,接着根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段,并通过第一编码段、第二编码段以及第三编码段确定第一业务对应的唯一的第一业务标识码。本发明实施例提供的业务标识码生成方法在保证生成唯一标识码的基础上,大大提高标识码的生成效率。

Description

业务标识码生成方法、装置、存储介质及电子设备
技术领域
本发明涉及电子商务技术领域,尤其涉及一种业务标识码生成方法、装置、存储介质及电子设备。
背景技术
随着互联网技术的发展,各应用系统进行业务处理时,都需要生成唯一标识码,以区分不同用户的同种业务操作,例如:生成唯一标识码作为订单标识区分针对不同用户、不同类型以及不同日期的订单;生成唯一标识码作为出库单标识区分不同用户以及不同日期的出库单,生成唯一标识码作为事务标识区分不同类型以及不同日期的事务操作。
目前,对于业务标识码的生成都是通过利用数据库自增标识码主键的特性,对数据库进行读写操作,每次读写操作后得到一个唯一标识码,然后以该标识码作为不同业务的唯一标记。
然而,现有技术中的标识码生成方式,在每次在生成唯一标识码时,均需要读写一次数据库,因此上述方法生成标识码的效率依赖于数据库的读写性能和运算能力,当数据库的读写性能或者运算能力较差时,唯一标识码生成效率低,这将严重影响订单拆分、转移出库等应用系统的吞吐量。
发明内容
本发明提供一种业务标识码生成方法、装置、存储介质及电子设备,以使得无需依赖于数据库的特性来进行业务标识码的生成,在保证生成唯一标识码的基础上,大大提高标识码的生成效率。
第一方面,本发明实施例提供一种业务标识码生成方法,包括:
接收第一业务的标识码生成请求,并根据所述标识码生成请求确定业务类型信息以及业务日期信息;
根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号,其中,所述原始序列号为第二业务对应的序列号,所述第二业务与所述第一业务的业务日期相同,所述第二业务为距所述第一业务最近、且与所述第一业务业务类型相同的业务;
根据所述业务类型信息确定业务第一编码段,根据所述业务日期信息确定第二编码段,根据所述当前序列号生成第三编码段;
根据所述第一编码段、所述第二编码段以及所述第三编码段确定所述第一业务对应的第一业务标识码。
在一种可能的设计中,在所述接收第一业务的标识码生成请求,并根据所述标识码生成请求确定业务类型信息以及业务日期信息之后,还包括:
根据所述标识码生成请求确定所述第一业务对应的应用系统名称信息以及业务标识码名称信息;
根据所述应用系统名称信息与所述业务标识码名称信息确定常量段编码段,根据所述业务日期信息确定日期段编码段,以及根据所述业务类型信息确定业务对象属性编码段;
根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子;
根据所述动态隔离因子确定第一服务节点,所述第一服务节点为服务节点集合中的一个服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述根据所述动态隔离因子确定第一服务节点,包括:
根据所述动态隔离因子以及预设校验算法确定第一校验数值;
根据所述第一校验数值以及预设槽位数确定第一计算槽位,所述第一计算槽位为计算槽位集合中的一个计算槽位,所述计算槽位集合所包括的计算槽位数为所述预设槽位数;
根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组,所述第一分片组中的所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述根据所述第一校验数值以及预设槽位数确定第一计算槽位,包括:
计算所述第一校验数值除以所述预设槽位数的第一余数;
根据所述第一余数确定所述第一计算槽位。
在一种可能的设计中,在所述根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组之后,还包括:
确定所述第一分片组中利用率最低的所述第一服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,在所述根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号之后,包括:
根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率;
判断所述第一使用率是否大于预设比例阈值;
若判断结果为是,则根据所述第一序列号段以及预设递增步长启动第二线程将第一序列号段缓存至第二本地缓存中,其中,第一线程用于计算所述第一业务对应的当前序列号,所述第一线程与所述第二线程为并行线程。
在一种可能的设计中,在所述根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率之前,还包括:
根据所述动态隔离因子查询本地缓存服务器中是否存在可用序列号段;
若判断结果为否,则获取从缓存服务器中获取所述第一序列号段。
第二方面,本发明实施例还提供一种业务标识码生成装置,包括:
请求接收模块,用于接收第一业务的标识码生成请求;
信息确定模块,用于根据所述标识码生成请求确定业务类型信息以及业务日期信息;
序列号确定模块,用于根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号,其中,所述原始序列号为第二业务对应的序列号,所述第二业务与所述第一业务的业务日期相同,所述第二业务为距所述第一业务最近、且与所述第一业务业务类型相同的业务;
编码段确定模块,用于根据所述业务类型信息确定业务第一编码段,根据所述业务日期信息确定第二编码段,根据所述当前序列号生成第三编码段;
标识码确定模块,用于根据所述第一编码段、所述第二编码段以及所述第三编码段确定所述第一业务对应的第一业务标识码。
在一种可能的设计中,所述信息确定模块,还用于根据所述标识码生成请求确定所述第一业务对应的应用系统名称信息以及业务标识码名称信息;
所述编码段确定模块,还用于根据所述应用系统名称信息与所述业务标识码名称信息确定常量段编码段,根据所述业务日期信息确定日期段编码段,以及根据所述业务类型信息确定业务对象属性编码段;
所述业务标识码生成装置,还包括:
隔离因子确定模块,用于根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子;
服务节点确定模块,用于根据所述动态隔离因子确定第一服务节点,所述第一服务节点为服务节点集合中的一个服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述服务节点确定模块,具体用于:
根据所述动态隔离因子以及预设校验算法确定第一校验数值;
根据所述第一校验数值以及预设槽位数确定第一计算槽位,所述第一计算槽位为计算槽位集合中的一个计算槽位,所述计算槽位集合所包括的计算槽位数为所述预设槽位数;
根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组,所述第一分片组中的所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述服务节点确定模块,还具体用于:
计算所述第一校验数值除以所述预设槽位数的第一余数;
根据所述第一余数确定所述第一计算槽位。
在一种可能的设计中,所述服务节点确定模块,还具体用于:
确定所述第一分片组中利用率最低的所述第一服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述序列号确定模块,具体用于:
根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率;
判断所述第一使用率是否大于预设比例阈值;
若判断结果为是,则根据所述第一序列号段以及预设递增步长启动第二线程将第一序列号段缓存至第二本地缓存中,其中,第一线程用于计算所述第一业务对应的当前序列号,所述第一线程与所述第二线程为并行线程。
在一种可能的设计中,所述序列号确定模块,还具体用于:
根据所述动态隔离因子查询本地缓存服务器中是否存在可用序列号段;
若判断结果为否,则获取从缓存服务器中获取所述第一序列号段。
第三方面,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意一种可能的业务标识码生成方法。
第四方面,本发明实施例还提供一种电子设备,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任意一种可能的业务标识码生成方法。
本发明实施例提供的一种业务标识码生成方法、装置、存储介质及电子设备,通过根据接收到的标识码生成请求确定业务类型信息以及业务日期信息,然后,再根据业务类型信息以及业务日期信息确定原始序列号,并根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号,此外,接着根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段,并通过第一编码段、第二编码段以及第三编码段确定第一业务对应的唯一的第一业务标识码,通过业务类型、业务日期以及唯一的当前序列号共同唯一的业务标识码,以高效地生成业务标识码,在保证生成唯一标识码的基础上,大大提高标识码的生成效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明根据一示例实施例示出的业务标识码生成方法的应用场景的示意图;
图2是本发明根据一示例实施例示出的业务标识码生成方法的流程图;
图3是本发明根据另一示例实施例示出的业务标识码生成方法的流程图;
图4是图3所示实施例中步骤206的一种可能的流程图;
图5是图3所示实施例中节点服务器确定原理示意图;
图6是本发明根据一示例实施例示出的业务标识码生成装置的结构示意图;
图7是本发明根据另一示例实施例示出的业务标识码生成装置的结构示意图;
图8是本发明根据一示例实施例示出的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是本发明根据一示例实施例示出的业务标识码生成方法的应用场景的示意图。如图1所示,本发明实施例所提供的业务标识码生成方法可以应用于分布式系统,该系统可以由下游服务101、路由代理服务102、标识码生成服务103以及缓存服务器104。其中,动态隔离因子是指用来区分每个需要生成的唯一标识码的标识,可以任意组合,由下游服务101传入。下游服务101可以是属于外部系统的服务,下游服务101调用分布式标识码生成系统,传入动态隔离因子,获得生成的分布式唯一标识码。路由代理服务102把动态隔离因子作为键通过预设校验算法,确定路由到具体哪个分片组103,同时根据分片组内各节点的CPU和内存负载动态确定调用某个服务节点1031。每个分片组103内的多个节点都可以对同一动态隔离因子进行处理,生成对应的唯一标识码。分片组103内的服务节点1031通过缓存服务器104获取对应动态隔离因子的序列号段,其中,例如一次取对应步长可以为1000个序列号,同时服务节点1031内使用双缓存区来保证平滑获取序列号。通过对动态隔离因子分片进行垂直拆分,分片组103内服务节点1031按顺序号段进行水平拆分,内存双缓存的标识码号段确定唯一标识码,来扩展分布式标识码生成系统的并发处理能力,解决高并发海量数据情况下高效生成唯一标识码的问题。
图2是本发明根据一示例实施例示出的业务标识码生成方法的流程图。如图2所示,本实施例提供的业务标识码生成方法,包括:
101、接收第一业务的标识码生成请求。
具体地,可以为用户下游服务输入第一业务的标识码生成请求,例如可以是用户通过终端发送的订单请求以及出库请求等。
步骤102、根据标识码生成请求确定业务类型信息以及业务日期信息。
具体地,在接收到第一业务的标识码生成请求之后,可以根据标识码生成请求确定业务类型信息以及业务日期信息。例如,该业务类型信息为订单请求,而业务日期信息可以为20181001
步骤103、根据业务类型信息以及业务日期信息确定原始序列号,并根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号。
具体他,可以根据业务类型信息以及业务日期信息确定原始序列号,值得理解地,原始序列号为当前在该日期对应该业务类型最新使用过的序列号,例如,针对在日期为20181001对应的订单业务最新使用过的序列号为1000,则1000即为下一次序列号生成操作所对应的原始序列号。
然后,根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号,其中,原始序列号为第二业务对应的序列号,第二业务与第一业务的业务日期相同,并且第二业务为距第一业务最近、且与第一业务具有相同业务类型的业务。值得理解地,预设编码隔离规则可以为数字迭代规则,例如可以为等步递增的方式,其步长可以根据实际情况进行适应性选取,例如可以将步长选为1,则当第二业务对应的序列号为1000时,则当前业务对应的当前序列号为1001。但是,上述的预设编码隔离规则可以为其他任意根据数字、符号、字母以及其任意之和方式的计算规则,在本实施例中不对其进行具体限定,只需保证根据预设编码隔离规则在同一日期内生成的序列号具有唯一性即可。
步骤104、根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段。
此外,编码隔离规则是唯一标识码生成的规则来源,具体地,可以由多个编码段组成,可以分为第一编码段、第二编码段、第三编码段以及序列编码段,其中,第一编码段可以为业务类型编码段,第二编码段为日期段编码段,第三编码段为步骤103中所生成的当前序列号。例如,当前对应的当前序列号值为13256,第一编码段的值为order_type=SO,即业务类型为订单业务,第二编码段的值为当前日期20181001,第三编码段值为当前可用序列号值13256,此外,还可以将序列号的位数设置为10位,因此,可以向左填充得到值0000013256。
步骤105、根据第一编码段、第二编码段以及第三编码段确定第一业务对应的第一业务标识码。
在根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段之后,可以根据第一编码段、第二编码段以及第三编码段确定第一业务对应的第一业务标识码,例如生成对应唯一的第一业务标识码=SO201810010000013256,并将该第一业务标识码返回给下游服务。
在本实施例中,通过根据接收到的标识码生成请求确定业务类型信息以及业务日期信息,然后,再根据业务类型信息以及业务日期信息确定原始序列号,并根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号,此外,接着根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段,并通过第一编码段、第二编码段以及第三编码段确定第一业务对应的唯一的第一业务标识码,通过业务类型、业务日期以及唯一的当前序列号共同唯一的业务标识码,以高效地生成业务标识码,在保证生成唯一标识码的基础上,大大提高标识码的生成效率。
图3是本发明根据另一示例实施例示出的业务标识码生成方法的流程图。如图3所示,本实施例提供的业务标识码生成方法,包括:
步骤201、接收第一业务的标识码生成请求。
步骤202、根据标识码生成请求确定业务类型信息以及业务日期信息。
值得说明地,步骤201-202的具体实现方式参照实施例一中步骤101-102的描述,这里不再赘述。
步骤203、根据标识码生成请求确定第一业务对应的应用系统名称信息以及业务标识码名称信息。
步骤204、根据应用系统名称信息与业务标识码名称信息确定常量段编码段,根据业务日期信息确定日期段编码段,以及根据业务类型信息确定业务对象属性编码段。
具体地,可以根据应用系统名称信息与业务标识码名称信息确定常量段编码段,其中,常量段编码段返回一个常量的信息,作为生成的编码信息的一部分。常量段的组成包括段顺序号、常量段类型、内容。根据业务日期信息确定日期段编码段,其中,日期段编码段返回指定日期格式的当前日期,作为生成编码信息的一部分。日期段的组成包括顺序号、日期段类型、当前日期格式。根据业务类型信息确定业务对象属性编码段,其中,业务对象属性编码段返回指定业务对象的属性的值,作为生成编码信息的一部分。业务对象属性段的组成包括段顺序号、业务对象属性段类型、业务对象属性名。
步骤205、根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子。
在根据应用系统名称信息与业务标识码名称信息确定常量段编码段,根据业务日期信息确定日期段编码段,以及根据业务类型信息确定业务对象属性编码段之后,可以根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子。例如,解析后可以得到对应的动态隔离因子具体为:“app1.order_id.SO.20181001”,app1为常量段编码段,order_id.SO为业务对象属性编码段,20181001为日期段编码段。
步骤206、根据动态隔离因子确定第一服务节点,第一服务节点用于计算当前序列号以及第一业务标识码。
为了能够扩展分布式标识码生成系统的并发处理能力,解决高并发海量数据情况下高效生成唯一标识码的问题,可以设置服务节点集合,然后根据动态隔离因子确定第一服务节点,第一服务节点用于计算当前序列号以及第一业务标识码,其中,第一服务节点为服务节点集合中的一个服务节点,第一服务节点用于计算当前序列号以及第一业务标识码。通过利用动态隔离因子确定服务节点的方式,可以将不同的业务分配至不同的服务节点中进行处理,从而有效地提高运算速度。
对于第一服务节点的具体确定方式,图4是图3所示实施例中步骤206的一种可能的流程图。如图4所示,本实施中的步骤206,包括:
步骤2061、根据动态隔离因子以及预设校验算法确定第一校验数值。
步骤2062、根据第一校验数值以及预设槽位数确定第一计算槽位。
具体地,将输入的动态隔离因子作为键,然后使用预设校验算法实现数据的分片,其中,预设校验算法可以为CRC32算法,值得说明地,CRC32算法为现有的通用算法,广泛应用于数据存储和数据通讯领域,在本实施例中对其具体地运算原理不进行赘述。
然后,根据第一校验数值以及预设槽位数确定第一计算槽位,第一计算槽位为计算槽位集合中的一个计算槽位,计算槽位集合所包括的计算槽位数为预设槽位数。
图5是图3所示实施例中节点服务器确定原理示意图。如图5所示,可以将计算槽位集合将预设槽位数设置为4096,即设置4096个计算槽位,而对于计算槽位的编号则是从0-4095,然后,计算所述第一校验数值除以预设槽位数的第一余数,值得理解地,当预设槽位数设置为4096时,第一余数则是从0-4095之间变化,例如通过crc32(键)计算的第一校验数值为4097,则crc32(键)%4096的结果为1,若通过crc32(键)计算的第一校验数值为4098,则crc32(键)%4096的结果为2。
当预设槽位数设置为4096,可以将第一余数对应相同编号的计算槽位来确定第一计算槽位。
步骤2063、根据第一计算槽位以及预设的计算槽位映射数据确定第一分片组。
在确定第一计算槽位之后,还可以根据第一计算槽位以及预设的计算槽位映射数据确定第一分片组,其中,预设的计算槽位映射数据可以为计算槽位的编号与分片组的对应关系,例如,当预设槽位数设置为4096,可以将编号为0-1364的计算槽位与一个分片组进行对应,将编号为1365-2730的计算槽位与另一个分片组进行对应,而将编号为2731-4095的计算槽位与再一个分片组进行对应。值得说明地,在本实施例中,并不对预设槽位数的具体数值进行具体限定,也不对具体设置多少个分片组或者每个分片组中设置多少个服务节点进行限定。
步骤2064、确定第一分片组中利用率最低的第一服务节点。
具体地,确定第一分片组中利用率最低的第一服务节点,第一服务节点用于计算当前序列号以及第一业务标识码,对于同一分片组内多个计算节点的路由分配算法,根据计算节点的CPU和内存利用率来确定分配给哪个节点。每个节点根据分布式应用程序协调服务,例如zookeeper,来获得路由代理服务列表,每10秒定时反馈当前CPU和内存利用率给路由代理服务。路由代理服务根据键路由到的分片组内计算节点反馈的利用率信息,优先选取当前利用率最低的就是那节点,调用标识码生成服务节点,生成分布式唯一标识码。
步骤207、根据业务类型信息以及业务日期信息确定原始序列号,并根据原始序列号以及预设编码隔离规则计算第一业务对应的当前序列号。
步骤208、根据业务类型信息确定业务第一编码段,根据业务日期信息确定第二编码段,根据当前序列号生成第三编码段。
步骤209、根据第一编码段、第二编码段以及第三编码段确定第一业务对应的第一业务标识码。
值得说明地,步骤207-209的具体实现方式参照实施例一中步骤103-105的描述,这里不再赘述。
此外,在上述实施例的基础上,为了提高计算过程的调用相应速度,可以采用双缓存机制,现有技术中,均采用的是单缓存机制,即单一缓存号段在号段用完时,标识码生成中心会直接访问后端缓存服务,这时需要同步请求缓存服务,可能导致调用响应时间变慢。具体地,对于双缓存机制,可以是在不需要在取号段的时候同步请求,当号段消费到某个点时就异步的把下一个号段加载到内存中。
在一种可能的实现方式中,可以是先根据动态隔离因子查询本地缓存服务器中是否存在可用序列号段,若判断结果为否,则获取从缓存服务器中获取第一序列号段。然后,再根据当前序列号确定第一本地缓存中的第一序列号段中的第一使用率,并判断第一使用率是否大于预设比例阈值,若判断结果为是,则根据第一序列号段以及预设递增步长启动第二线程将第一序列号段缓存至第二本地缓存中,其中,第一线程用于计算第一业务对应的当前序列号,第一线程与第二线程为并行线程。其中,值得理解地,上述的预设比例阈值可以为50%,80%或者90%,在本实施例中并不进行具体限定。
其中,在一个具体实现例子中,标识码生成中心根据当前的动态隔离因子,查询本地缓存,如果查询为空值,则从缓存服务器中使用递增命令,根据设置的递增步长,获取一定范围的递增标识码区间,比如1000,放入第一号本地缓存。如果第一号本地缓存号段的使用率超过一定的阀值,比如已经使用到50%,则标识码生成中心自动异步从缓存服务器中获取下一个递增标识码区间,放入第二号本地缓存区。以便减少缓存服务器的同步调用次数,提高调用速度。
采用双缓存的方式,标识码生成中心服务内部有两个号段缓存区。当前号段已下发预设比例阈值,例如50%时,如果下一号段未更新,则另启一个更新线程去更新下一个号段。当前号段全部下发完后,如果下个号段准备好了则切换到下个号段未当前缓存区接着下发,循环往复。
可见,在本实施例中,通过基于动态隔离因子进行分片,并使用双缓存进行优化的方法,实现了高并发海量数据情况下的分布式唯一标示码的生成。并且基于动态隔离因子,使用预设校验算法进行垂直分片,通过分而治之,保证了标示码生成系统的高性能,提出了分片组的概念,每个分片组可以水平扩展多个标示码生成服务,保证了系统的高可用性,同时基于内存双缓存的标示码号段确定唯一标示码,以空间换时间,有效的解决了现有技术中分布式唯一标示码生成效率低,影响核心应用系统的吞吐量的问题。
图6是本发明根据一示例实施例示出的业务标识码生成装置的结构示意图。如图6所示,本实施例提供的业务标识码生成装置,包括:
请求接收模块301,用于接收第一业务的标识码生成请求;
信息确定模块302,用于根据所述标识码生成请求确定业务类型信息以及业务日期信息;
序列号确定模块303,用于根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号,其中,所述原始序列号为第二业务对应的序列号,所述第二业务与所述第一业务的业务日期相同,所述第二业务为距所述第一业务最近、且与所述第一业务业务类型相同的业务;
编码段确定模块304,用于根据所述业务类型信息确定业务第一编码段,根据所述业务日期信息确定第二编码段,根据所述当前序列号生成第三编码段;
标识码确定模块305,用于根据所述第一编码段、所述第二编码段以及所述第三编码段确定所述第一业务对应的第一业务标识码。
在图6所示的实施例基础上,图7是本发明根据另一示例实施例示出的业务标识码生成装置的结构示意图。如图7所示,所述信息确定模块302,还用于根据所述标识码生成请求确定所述第一业务对应的应用系统名称信息以及业务标识码名称信息;
所述编码段确定模块304,还用于根据所述应用系统名称信息与所述业务标识码名称信息确定常量段编码段,根据所述业务日期信息确定日期段编码段,以及根据所述业务类型信息确定业务对象属性编码段;
所述业务标识码生成装置,还包括:
隔离因子确定模块306,用于根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子;
服务节点确定模块307,用于根据所述动态隔离因子确定第一服务节点,所述第一服务节点为服务节点集合中的一个服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述服务节点确定模块307,具体用于:
根据所述动态隔离因子以及预设校验算法确定第一校验数值;
根据所述第一校验数值以及预设槽位数确定第一计算槽位,所述第一计算槽位为计算槽位集合中的一个计算槽位,所述计算槽位集合所包括的计算槽位数为所述预设槽位数;
根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组,所述第一分片组中的所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述服务节点确定模块307,还具体用于:
计算所述第一校验数值除以所述预设槽位数的第一余数;
根据所述第一余数确定所述第一计算槽位。
在一种可能的设计中,所述服务节点确定模块307,还具体用于:
确定所述第一分片组中利用率最低的所述第一服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
在一种可能的设计中,所述序列号确定模块303,具体用于:
根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率;
判断所述第一使用率是否大于预设比例阈值;
若判断结果为是,则根据所述第一序列号段以及预设递增步长启动第二线程将第一序列号段缓存至第二本地缓存中,其中,第一线程用于计算所述第一业务对应的当前序列号,所述第一线程与所述第二线程为并行线程。
在一种可能的设计中,所述序列号确定模块303,还具体用于:
根据所述动态隔离因子查询本地缓存服务器中是否存在可用序列号段;
若判断结果为否,则获取从缓存服务器中获取所述第一序列号段。
值得说明地,图6-7所示实施例提供的业务标识码生成装置,可用于执行上述图2-图4所示实施例提供的业务标识码生成方法,具体实现方式和技术效果类似,这里不再赘述。
图8是本发明根据一示例实施例示出的电子设备的结构示意图。如图8所示,本实施例提供的电子设备40,包括:
处理器401;
存储器402,用于存储所述处理器的计算机程序;
其中,所述处理器401被配置为通过执行所述计算机程序来实现前述方法实施例中任一实现方式提供的库存管理方法。
中,所述处理器401配置为经由执行所述可执行指令来执行前述任一项方法实施例所述的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例还提供一种可读存储介质,可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的方法。
本实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种业务标识码生成方法,其特征在于,包括:
接收第一业务的标识码生成请求,并根据所述标识码生成请求确定业务类型信息以及业务日期信息;
根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号,其中,所述原始序列号为第二业务对应的序列号,所述第二业务与所述第一业务的业务日期相同,所述第二业务为距所述第一业务最近、且与所述第一业务业务类型相同的业务;
根据所述业务类型信息确定业务第一编码段,根据所述业务日期信息确定第二编码段,根据所述当前序列号生成第三编码段;
根据所述第一编码段、所述第二编码段以及所述第三编码段确定所述第一业务对应的第一业务标识码。
2.根据权利要求1所述的业务标识码生成方法,其特征在于,在所述接收第一业务的标识码生成请求,并根据所述标识码生成请求确定业务类型信息以及业务日期信息之后,还包括:
根据所述标识码生成请求确定所述第一业务对应的应用系统名称信息以及业务标识码名称信息;
根据所述应用系统名称信息与所述业务标识码名称信息确定常量段编码段,根据所述业务日期信息确定日期段编码段,以及根据所述业务类型信息确定业务对象属性编码段;
根据所述常量段编码段、业务对象属性编码段以及日期编码段确定动态隔离因子;
根据所述动态隔离因子确定第一服务节点,所述第一服务节点为服务节点集合中的一个服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
3.根据权利要求2所述的业务标识码生成方法,其特征在于,所述根据所述动态隔离因子确定第一服务节点,包括:
根据所述动态隔离因子以及预设校验算法确定第一校验数值;
根据所述第一校验数值以及预设槽位数确定第一计算槽位,所述第一计算槽位为计算槽位集合中的一个计算槽位,所述计算槽位集合所包括的计算槽位数为所述预设槽位数;
根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组,所述第一分片组中的所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
4.根据权利要求3所述的业务标识码生成方法,其特征在于,所述根据所述第一校验数值以及预设槽位数确定第一计算槽位,包括:
计算所述第一校验数值除以所述预设槽位数的第一余数;
根据所述第一余数确定所述第一计算槽位。
5.根据权利要求3所述的业务标识码生成方法,其特征在于,在所述根据所述第一计算槽位以及预设的计算槽位映射数据确定第一分片组之后,还包括:
确定所述第一分片组中利用率最低的所述第一服务节点,所述第一服务节点用于计算所述当前序列号以及所述第一业务标识码。
6.根据权利要求2-5中任意一项所述的业务标识码生成方法,其特征在于,在所述根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号之后,包括:
根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率;
判断所述第一使用率是否大于预设比例阈值;
若判断结果为是,则根据所述第一序列号段以及预设递增步长启动第二线程将第一序列号段缓存至第二本地缓存中,其中,第一线程用于计算所述第一业务对应的当前序列号,所述第一线程与所述第二线程为并行线程。
7.根据权利要求6所述的业务标识码生成方法,其特征在于,在所述根据所述当前序列号确定第一本地缓存中的第一序列号段中的第一使用率之前,还包括:
根据所述动态隔离因子查询本地缓存服务器中是否存在可用序列号段;
若判断结果为否,则获取从缓存服务器中获取所述第一序列号段。
8.一种业务标识码生成装置,其特征在于,包括:
请求接收模块,用于接收第一业务的标识码生成请求;
信息确定模块,用于根据所述标识码生成请求确定业务类型信息以及业务日期信息;
序列号确定模块,用于根据所述业务类型信息以及所述业务日期信息确定原始序列号,并根据所述原始序列号以及预设编码隔离规则计算所述第一业务对应的当前序列号,其中,所述原始序列号为第二业务对应的序列号,所述第二业务与所述第一业务的业务日期相同,所述第二业务为距所述第一业务最近、且与所述第一业务业务类型相同的业务;
编码段确定模块,用于根据所述业务类型信息确定业务第一编码段,根据所述业务日期信息确定第二编码段,根据所述当前序列号生成第三编码段;
标识码确定模块,用于根据所述第一编码段、所述第二编码段以及所述第三编码段确定所述第一业务对应的第一业务标识码。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8任一项所述的业务标识码生成方法。
10.一种电子设备,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-8任一项所述的业务标识码生成方法。
CN201910218029.XA 2019-03-21 2019-03-21 业务标识码生成方法、装置、存储介质及电子设备 Pending CN111722918A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910218029.XA CN111722918A (zh) 2019-03-21 2019-03-21 业务标识码生成方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910218029.XA CN111722918A (zh) 2019-03-21 2019-03-21 业务标识码生成方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN111722918A true CN111722918A (zh) 2020-09-29

Family

ID=72563518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910218029.XA Pending CN111722918A (zh) 2019-03-21 2019-03-21 业务标识码生成方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111722918A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667685A (zh) * 2020-12-29 2021-04-16 北京先进数通信息技术股份公司 一种流水号配置方法、装置、设备及存储介质
CN112732731A (zh) * 2020-12-29 2021-04-30 京东数字科技控股股份有限公司 业务数据的消费方法、装置、电子设备和可读存储介质
CN112990404A (zh) * 2021-02-08 2021-06-18 北京声智科技有限公司 样本标识码图案的生成方法及装置、获取方法及电子设备
CN113254207A (zh) * 2021-05-26 2021-08-13 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质
CN113468140A (zh) * 2021-06-30 2021-10-01 上海掌门科技有限公司 数据迁移处理方法、电子设备及计算机可读存储介质
CN113568891A (zh) * 2021-08-05 2021-10-29 深圳墨世科技有限公司 分布式id生成方法、装置、服务器和可读存储介质
CN113641728A (zh) * 2021-08-10 2021-11-12 上海联蔚数字科技集团股份有限公司 序列码生成管理系统及方法与设备
CN114257579A (zh) * 2021-12-20 2022-03-29 支付宝(杭州)信息技术有限公司 一种信息传输的方法、装置、设备及介质
CN115174527A (zh) * 2022-07-12 2022-10-11 腾讯科技(深圳)有限公司 序列号处理方法和装置、计算设备、存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544121A (zh) * 2013-10-25 2014-01-29 杭州华为数字技术有限公司 一种基于微服务系统管理槽位号的方法、设备及系统
CN107229555A (zh) * 2017-05-04 2017-10-03 北京小度信息科技有限公司 标识生成方法和装置
WO2017166744A1 (zh) * 2016-04-01 2017-10-05 乐视控股(北京)有限公司 移动终端会员服务数据交互方法、装置和电子设备
CN107360224A (zh) * 2017-07-07 2017-11-17 携程旅游信息技术(上海)有限公司 分布式系统中序列号生成方法、系统、设备及存储介质
CN108243264A (zh) * 2016-12-27 2018-07-03 中国移动通信有限公司研究院 一种序列号生成方法及系统
CN108512854A (zh) * 2018-04-09 2018-09-07 平安科技(深圳)有限公司 制度信息安全监控方法、装置、计算机设备和存储介质
CN109344162A (zh) * 2018-09-14 2019-02-15 北京京东金融科技控股有限公司 业务数据处理方法和装置
CN110609836A (zh) * 2019-08-21 2019-12-24 杭州数梦工场科技有限公司 表单处理方法、装置、电子设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544121A (zh) * 2013-10-25 2014-01-29 杭州华为数字技术有限公司 一种基于微服务系统管理槽位号的方法、设备及系统
WO2017166744A1 (zh) * 2016-04-01 2017-10-05 乐视控股(北京)有限公司 移动终端会员服务数据交互方法、装置和电子设备
CN108243264A (zh) * 2016-12-27 2018-07-03 中国移动通信有限公司研究院 一种序列号生成方法及系统
CN107229555A (zh) * 2017-05-04 2017-10-03 北京小度信息科技有限公司 标识生成方法和装置
CN107360224A (zh) * 2017-07-07 2017-11-17 携程旅游信息技术(上海)有限公司 分布式系统中序列号生成方法、系统、设备及存储介质
CN108512854A (zh) * 2018-04-09 2018-09-07 平安科技(深圳)有限公司 制度信息安全监控方法、装置、计算机设备和存储介质
CN109344162A (zh) * 2018-09-14 2019-02-15 北京京东金融科技控股有限公司 业务数据处理方法和装置
CN110609836A (zh) * 2019-08-21 2019-12-24 杭州数梦工场科技有限公司 表单处理方法、装置、电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
范承啸;符浩军;张海勃;: "一种地名唯一标识码编码方法及应用模式", 测绘与空间地理信息, no. 10, 25 October 2018 (2018-10-25) *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732731A (zh) * 2020-12-29 2021-04-30 京东数字科技控股股份有限公司 业务数据的消费方法、装置、电子设备和可读存储介质
CN112667685A (zh) * 2020-12-29 2021-04-16 北京先进数通信息技术股份公司 一种流水号配置方法、装置、设备及存储介质
CN112732731B (zh) * 2020-12-29 2024-06-18 京东科技控股股份有限公司 业务数据的消费方法、装置、电子设备和可读存储介质
CN112667685B (zh) * 2020-12-29 2024-04-16 北京先进数通信息技术股份公司 一种流水号配置方法、装置、设备及存储介质
CN112990404A (zh) * 2021-02-08 2021-06-18 北京声智科技有限公司 样本标识码图案的生成方法及装置、获取方法及电子设备
CN113254207A (zh) * 2021-05-26 2021-08-13 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质
CN113254207B (zh) * 2021-05-26 2024-05-28 北京达佳互联信息技术有限公司 一种标识码生成方法、装置、服务器和存储介质
CN113468140A (zh) * 2021-06-30 2021-10-01 上海掌门科技有限公司 数据迁移处理方法、电子设备及计算机可读存储介质
CN113568891B (zh) * 2021-08-05 2024-02-20 深圳墨世科技有限公司 分布式id生成方法、装置、服务器和可读存储介质
CN113568891A (zh) * 2021-08-05 2021-10-29 深圳墨世科技有限公司 分布式id生成方法、装置、服务器和可读存储介质
CN113641728A (zh) * 2021-08-10 2021-11-12 上海联蔚数字科技集团股份有限公司 序列码生成管理系统及方法与设备
CN114257579A (zh) * 2021-12-20 2022-03-29 支付宝(杭州)信息技术有限公司 一种信息传输的方法、装置、设备及介质
CN115174527B (zh) * 2022-07-12 2024-02-13 腾讯科技(深圳)有限公司 序列号处理方法和装置、计算设备、存储介质
CN115174527A (zh) * 2022-07-12 2022-10-11 腾讯科技(深圳)有限公司 序列号处理方法和装置、计算设备、存储介质

Similar Documents

Publication Publication Date Title
CN111722918A (zh) 业务标识码生成方法、装置、存储介质及电子设备
JP6716727B2 (ja) ストリーミングデータ分散処理方法及び装置
CN107515878B (zh) 一种数据索引的管理方法及装置
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN111858586B (zh) 一种数据处理的方法和装置
CN109359060B (zh) 数据抽取方法、装置、计算设备及计算机存储介质
CN113672375B (zh) 资源分配预测方法、装置、设备及存储介质
CN112685417B (zh) 数据库操作方法、系统、装置、服务器及存储介质
CN113836157A (zh) 获取数据库增量数据的方法和装置
CN110460987B (zh) 一种写卡方法、装置、服务器和存储介质
CN112650449A (zh) 缓存空间的释放方法、释放系统、电子设备及存储介质
CN116303418A (zh) 基于物联网平台的海量规则处理方法、系统及存储介质
CN116185578A (zh) 计算任务的调度方法和计算任务的执行方法
CN110221778A (zh) 酒店数据的处理方法、系统、存储介质以及电子设备
CN115408547A (zh) 一种字典树构建方法、装置、设备及存储介质
CN115525659A (zh) 数据查询方法、装置、电子设备及存储介质
US7930489B2 (en) Techniques for optimizing configuration partitioning
CN110046040B (zh) 分布式任务处理方法及系统和存储介质
CN110083438B (zh) 事务分发方法、装置、设备和存储介质
CN113645261A (zh) 一种会话数据处理方法、装置、存储介质和计算机设备
CN113111086B (zh) 数据存储和查询响应方法、区块执行方法
CN113515520B (zh) 数据管理方法、装置、服务器及存储介质
CN113282405B (zh) 一种负载调整的优化方法及终端
CN109002448B (zh) 一种报表统计方法、装置及系统
CN115599838B (zh) 基于人工智能的数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination