CN114047904A - 一种流水号生成方法、系统、设备及可读存储介质 - Google Patents
一种流水号生成方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114047904A CN114047904A CN202111341710.7A CN202111341710A CN114047904A CN 114047904 A CN114047904 A CN 114047904A CN 202111341710 A CN202111341710 A CN 202111341710A CN 114047904 A CN114047904 A CN 114047904A
- Authority
- CN
- China
- Prior art keywords
- serial number
- number generation
- request
- serial
- group
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/123—Tax preparation or submission
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种流水号生成方法、系统、设备及可读存储介质,方法包括其中一个流水号生成装置接收多机负载均衡单元转送的流水号生成请求;流水号生成装置中的流水号生成单元利用流水号生成请求从预设流水号参数表中获取第一流水编号;流水号生成单元调用流水号生成请求的请求日期,并利用请求日期以及第一流水编号生成与流水号生成请求相对应的流水号。本申请解决了现有技术中的流水号生成方法不适用多机系统以及在高并发状态下流水号容易重复的技术问题,实现了在高并发状态下可以快速生成无重复的流水号的技术效果。
Description
技术领域
本发明实施例涉及计算机互联网技术领域,尤其涉及一种流水号生成方法、系统、设备及可读存储介质。
背景技术
在缴税场景中,每一笔交易均需要生成其唯一的流水号。现有流水号生成方法如下:(1)通过共享内存对流水编号进行步长计数器累加;(2)在目标应用启动过程中,发送编号请求至应用编号服务器,应用编号服务器根据编号请求在编号数据库中查询机器编号;接收应用编号服务器返回的机器编号;生成目标应用的流水号信息,根据流水号信息和机器编号生成对应的流水号;(3)服务器获得接收到业务设备的调用请求时的日期信息和时间信息;服务器根据日期信息进行处理,获得3位的日期编码;根据时间信息进行处理,获得5位的时间编码;服务器根据服务器的编码、日期编码和时间编码生成调用请求对应的流水号。
在上述流水号生成方案中,方案(1)通过共享内存对流水号步长计数器累加的方式生成流水号,因多机器间无法建立共享内存,该方法不适用多机系统;方案(2)中每增加一台机器,需在编号数据库中添加一条该机器的记录,不利于机器横向扩展;方案(3)中,在单机系统高并发时,获取到的5位时间编码很大概率是一样的,因此仍存在流水号重复的可能性。
发明内容
本发明实施例提供一种流水号生成方法、系统、设备及可读存储介质,解决了现有技术中的流水号生成方法不适用多机系统以及在高并发状态下流水号容易重复的技术问题。
第一方面,本发明实施例提供了一种流水号生成方法,流水号生成系统包括一个多机负载均衡单元和多个流水号生成装置,每个所述流水号生成装置包括一个流水号生成单元,所述流水号生成方法包括:
其中一个所述流水号生成装置接收所述多机负载均衡单元转送的流水号生成请求;
所述流水号生成装置中的所述流水号生成单元利用所述流水号生成请求从预设流水号参数表中获取第一流水编号;
所述流水号生成单元调用所述流水号生成请求的请求日期,并利用所述请求日期以及所述第一流水编号生成与所述流水号生成请求相对应的流水号。
第二方面,本发明实施例还提供了一种本发明实施例提供了一种流水号生成系统,包括一个多机负载均衡单元和多个流水号生成装置,一个所述多机负载均衡单元与多个所述流水号生成装置电连接,所述流水号生成装置执行如本发明实施例第一方面任意的流水号生成方法。
第三方面,本发明实施例还提供了一种流水号生成设备,所述流水号生成设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例第一方面任意的流水号生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例第一方面任意的流水号生成方法。
本发明实施例公开了一种流水号生成方法、系统、设备及可读存储介质,方法包括其中一个流水号生成装置接收多机负载均衡单元转送的流水号生成请求;流水号生成装置中的流水号生成单元利用流水号生成请求从预设流水号参数表中获取第一流水编号;流水号生成单元调用流水号生成请求的请求日期,并利用请求日期以及第一流水编号生成与流水号生成请求相对应的流水号。本申请通过多机负载均衡单元转发流水号生成请求至多个流水号生成装置中的一个,以使流水号生成装置利用请求日期以及第一流水编号生成流水号,解决了现有技术中的流水号生成方法不适用多机系统以及在高并发状态下流水号容易重复的技术问题,实现了在高并发状态下可以快速生成无重复的流水号的技术效果。
附图说明
图1是本发明实施例提供的一种流水号生成方法的流程图;
图2是本发明实施例提供的一种流水号生成系统的结构图;
图3是本发明实施例提供的另一种流水号生成方法的流程图;
图4是本发明实施例提供的又一种流水号生成方法的流程图;
图5是本发明实施例提供的又一种流水号生成方法的流程图;
图6是本发明实施例提供的又一种流水号生成方法的流程图;
图7是本发明实施例提供的又一种流水号生成方法的流程图;
图8是本发明实施例提供的一种流水号生成设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。
图1是本发明实施例提供的一种流水号生成方法的流程图。该流水号生成方法可适用于缴税业务平台采取多机同时处理业务请求的情况,还可适用于需要多机同时处理多项业务请求并为每项业务请求赋予流水号的其它业务领域。该流水号生成方法可以由流水号生成系统来执行,该系统可以采用硬件和/或软件的方式来实现,并一般可集成于服务器中。
图2是本发明实施例提供的一种流水号生成系统的结构图。如图2所示,该流水号生成系统包括一个多机负载均衡单元10和多个流水号生成装置20,图2中示例性地给出了流水号生成系统具有3个流水号生成装置20的示意图,每个流水号生成装置20包括一个流水号生成单元21,多机负载均衡单元10用于基于预设的负载均衡策略从多个流水号生成装置20中选择一个,并将接收到的流水号生成请求转送至该流水号生成装置20,流水号生成装置20基于接收到的流水号生成请求生成相应的流水号。
如图1所示,该流水号生成方法具体包括如下步骤:
S101,其中一个流水号生成装置20接收多机负载均衡单元10转送的流水号生成请求。
示例性地,以缴税业务平台为例,当纳税人申请缴税时,纳税人终端会发起一个缴税业务请求,该缴税业务请求中会携带有一个流水号生成请求,表明每一笔缴税业务都需要生成一个对应的流水号作为该笔缴税业务的缴纳标记。多级负载均衡单元10在接收到该缴税业务请求之后,会将其中携带的流水号生成请求转发至其中一个流水号生成装置20,多机负载均衡单元10的作用就是基于预设的负载均衡策略从多个流水号生成装置20中选择一个,并将接收到的缴税业务请求中的流水号生成请求转发至该流水号生成装置20进行处理,该流水号生成装置20基于接收到的流水号生成请求调用其中的流水号生成单元21获取与其相对应的唯一流水号。
在流水号生成请求数量较多的情况下,多机负载均衡单元10可以依次实现多个流水号生成装置20的负载均衡,以避免单机并发量高同时其他流水号生成装置20空闲的情况出现,即多机负载均衡单元会根据各个流水号生成装置20的繁忙程度来进行流水号生成请求的转发,以使每个流水号生成装置20在接收到流水号生成请求之后能够及时调用自身设置的流水号生成单元21生成流水号。
S102,流水号生成装置20中的流水号生成单元21利用流水号生成请求从预设流水号参数表中获取第一流水编号。
可选地,如图2所示,流水号生成系统还包括流水编号数据库30,预设流水号参数表设置于流水编号数据库30中。
具体地,预设流水号参数表是预先设置在流水号数据库30中的由多组初始流水编号组组成的表格,参见表1,表1示例性地给出了预设流水号参数表中设置有10组初始流水编号组,由表1可知,10组流水编号组中每一组对应一个序号,每个序号下的流水编号组的最小数和最大数确定了该序号下所对应的流水编号组的范围,例如,序号1所对应的流水编号组的最小数为10000000,最大数为19999999,即序号1所对应的流水编号组中的可用流水编号为从10000000到19999999中的所用整数。
表1.预设流水号参数表
序号 | 最小数 | 最大数 |
0 | 00000000 | 09999999 |
1 | 10000000 | 19999999 |
2 | 20000000 | 29999999 |
3 | 30000000 | 39999999 |
4 | 40000000 | 49999999 |
5 | 50000000 | 59999999 |
6 | 60000000 | 69999999 |
7 | 70000000 | 79999999 |
8 | 80000000 | 89999999 |
9 | 90000000 | 99999999 |
流水号生成单元21利用流水号生成请求从预设流水号参数表中获取第一流水编号,须知,第一流水编号的获取是按照从小到大的顺序依次获取的,即当流水号生成单元21依据流水号生成获取预设流水号参数表中某一序号下所对应的流水编号时,假设流水号生成单元21依据流水号生成获取预设流水号参数表中序号3所对应的流水编号时,流水号生成单元21会获取序号3所对应的流水编号中,未被使用的流水编号中的最小数,例如,当序号3所对应的流水编号组中的流水编号32113456以被使用,则流水号生成单元21当前获取的流水编号为32113457。
S103,流水号生成单元21调用流水号生成请求的请求日期,并利用请求日期以及第一流水编号生成与流水号生成请求相对应的流水号。
具体地,流水号生成单元21可以调用流水号生成请求的请求日期,并将请求日期转换为八位数值,例如2021年3月18日被转换为20210318,在加上获取到的第一流水编号,如21111111,则流水号生成单元21可以利用请求日期20210318和第一流水编号21111111生成与流水号生成请求相对应的16位流水号。
由于预设流水号参数表中设置有多组流水编号组,依据序号的不同,可以同时有多个流水号生成装置20调用预设流水号参数表中的流水编号组,在高并发请求状况下,多个流水号生成装置20在多级负载均衡单元10的均衡分配下,能够有效避免流水号容易重复、流水号生成速度较慢的情况。
本发明实施例通过多机负载均衡单元转发流水号生成请求至多个流水号生成装置中的一个,以使流水号生成装置利用请求日期以及第一流水编号生成流水号,解决了现有技术中的流水号生成方法不适用多机系统以及在高并发状态下流水号容易重复的技术问题,实现了在高并发状态下可以快速生成无重复的流水号的技术效果。
在本发明上述各技术方案的基础上,如图2所示,每个流水号生成装置20还包括一个流水号复原单元22,流水号复原单元22用于基于预设时间间隔将以及被使用的流水编号复原,以使被使用的流水编号能够被重复使用。图3是本发明实施例提供的另一种流水号生成方法的流程图,如图3所示,该流水号生成方法还包括如下步骤:
S301,其中一个流水号生成装置20接收多机负载均衡单元10转发的换日请求,其中,换日请求为服务器端向流水号生成装置20发送的更新日期的请求。
具体地,服务器端会根据预设时间间隔向多机负载均衡单元10发送更新日期的请求,即上述换日请求,通常来说,服务器端可以为人民银行的系统终端,预设时间间隔为24小时,即一天。当服务器端发送换日请求至多机负载均衡单元10时,多机负载均衡单元10基于负载均衡策略从多个流水号生成装置20中选择一个将接收到的换日请求转发至该流水号生成装置20进行处理。
S302,流水号生成装置20中的流水号复原单元22基于换日请求将预设流水号参数表中已经使用的流水编号复原。
具体地,流水号生成装置20中的流水号复原单元22在接收到换日请求之后会基于换日请求中携带的更新日期将当前日期进行更新,在日期更新之后,将前一天已经被使用过的预设流水号参数表中的流水编号进行复原,以使新的日期内所有的流失编号能够被重复使用,解决了流水编号匮乏的问题,提高了流水编号的利用率。
在上述各技术方案的基础上,图4是本发明实施例提供的又一种流水号生成方法的流程图,如图4所示,上述S102步骤具体包括:
S401,流水号生成单元21基于流水号生成请求生成一个随机数,随机数为预设范围内的正整数。
具体地,在流水号生成装置20接收到多机负载均衡单元10转发的流水号生成请求之后,流水号生成装置20中的流水号生成单元21会基于流水号生成请求生成一个随机数,随机数的预设范围基于预设流水号参数表中的流水编号组的序号设定,例如,参见表1,当预设流水号参数表中有10组流水编号组,即流水编号组的序号为0-9,则随机数的预设范围为0-9。
S402,流水号生成单元21基于随机数查询目标流水编号组是否被锁定,其中,目标流水编号组为预设流水号参数表中序号与随机数一致的流水编号组。
示例性地,流水号生成单元21基于流水号生成请求生成的随机数为3,则流水号生成单元21查询预设流水号参数表中序号3所对应的流水编号组是否为锁定,即随机数3所对应的序号3下的流水编号组为目标流水编号组。其中,流水编号组被锁定,表示改组流水编号组中的流水编号正在被某个流水号生成装置20中的流水号生成单元21所调用,暂时不能从中获取新的流水号。这样设置可以有效避免了高并发情况下流水号重复的可能。
S403,若目标流水编号组未被锁定,则流水号生成单元21判断目标流水编号组中的最小数步长计数器的值是否等于目标流水编号组中的最大编号值,其中,最小数步长计数器用于记录目标流水编号组已被使用的流水编号数量。
具体地,若流水号生成单元21查询到目标流水编号组未被锁定,即表明当前该组流水编号组未被使用,则流水号生成单元21进一步判断该流水编号组中是否还有未被使用的流水编号待用,即上述判断目标流失编号组中的最小数步长计数器的值是否等于改组中的最大编号值。
具体来说,由于每一组流水编号组中的流水编号在使用时都是从小到大依次被调用的,每当一个流水编号被调用,则该流水编号组中的最小数步长计数器就会加1,以此记录该流水编号组中的流水编号使用情况,因此当目标流水编号组中最小数步长计数器的值与流水编号组中的最大编号值相等,表明该组流水编号组中的所有流水编号均被使用完毕。
可选地,若目标流水编号组已被锁定,则流水号生成单元21基于流水号生成请求生成一个新的随机数,并基于新的随机数查询相应的目标流水编号组是否被锁定。
具体地,若流水号生成单元21查询到目标流水编号组已被锁定,则表明当前该目标流水编号组正在被其它流水号生成单元21所调用,此时流水号生成单元21会基于流水号生成请求生成一个新的随机数,并通过新的随机数确定出与之相对应序号的新的目标流水编号组,继而执行查询该目标流水编号组是否被锁定的动作。
S404,若最小数步长计数器的值不等于目标流水编号组中的最大编号值,则流水号生成单元将目标流水编号组中未使用的流水编号中的最小编号值确定为第一流水编号。
具体地,若流水号生成单元21确定出最小数步长计数器的值与目标流水编号组中的最大编号值不相等,表明该组流水编号组中的流水编号未被使用完毕,则直接将改组流水编号组中未使用的流水编号中的最小编号值确定为第一流水编号即可。
在上述各技术方案的基础上,图5是本发明实施例提供的又一种流水号生成方法的流程图,如图5所示,上述S404步骤具体包括:
S501,若最小数步长计数器的值不等于目标流水编号组中的最大编号值,则流水号生成单元21将目标流水编号组锁定。
具体地,若流水号生成单元21确定出最小数步长计数器的值与目标流水编号组中的最大编号值不相等,表明该组流水编号组中的流水编号未被使用完毕,此时,流水号生成单元21需要先将目标流水编号组锁定,防止其它流水号生成装回20中的流水号生成单元21调用该目标流水编号组。使用上述方法,能够最大限度的避免流水号被重复使用。
S502,流水号生成单元21从锁定后的目标流水编号组中获取未使用的流水编号中的最小编号值,并将最小编号值确定为第一流水编号。
具体地,由于每一组流水编号组中的流水编号在使用时都是从小到大依次被调用的,因此,当目标流水编号组被锁定之后,流水号生成单元21可以直接从目标流水编号组中获取未被使用的流水编号中的最小编号值,并将其确定为第一流水编号。
S503,流水号生成单元21将最小数步长计数器加1,并将目标流水编号组解锁。
具体地,在流水号生成单元21确定了第一流水编号之后,会将目标流水编号组中的最小数步长计数器加1,以使下一次该流水编号组被确定为目标流水编号组被调用时不会重复使用已被使用过的流水编号,然后流水号生成单元21会将目标流水编号组解锁,已备其他流水号生成装置20使用。
在上述各技术方案的基础上,图6是本发明实施例提供的又一种流水号生成方法的流程图,如图6所示,上述S403之后,该流水号生成方法还包括:
S601,若最小数步长计数器的值等于目标流水编号组中的最大编号值,则流水号生成单元21基于流水号生成请求生成一个新的随机数,并基于新的随机数确定第一流水编号。
具体地,若最小数步长计数器的值等于目标流水编号组中的最大编号值,则表明该目标流水编号组中的所有流水编号均被使用完毕,此时流水号生成单元21会基于流水号生成请求重新生成一个新的随机数,然后基于新的随机数再次确定出一个第一流水编号。
在上述各技术方案的基础上,图7是本发明实施例提供的又一种流水号生成方法的流程图,如图7所示,上述S302步骤具体包括:
S701,流水号生成装置20判断换日请求中携带的更新日期是否大于流水号生成装置20的当前日期。
具体地,为了保证流水号生成系统的工作稳定性,且最大限度的减少流水号生成系统出错的可能性,在流水号生成装置20接收到多机负载均衡单元10转发的换日请求之后,首先会判断换日请求中携带的更新日期是否大于流水号生成装置20的当前日期,以避免出现更新日期早于当前日期的错误情况。
S702,若更新日期大于当前日期,则流水号复原单元22将当前日期替换为更新日期,并将与更新日期相对应的流水号重置标志位记为0,其中,流水号重置标志位为0表示已使用的流水编号未复原。
具体地,若判断结果为更新日期大于当前日期,则流水号复原单元22会将当前日期替换为更新日期,然后将与更新日期相对应的流水号重置标志位记为0,表明此时更新后的日期所对应的流水编号还未进行复原。
S703,在将流水号重置标志位记为0之后,流水号复原单元22将预设流水号参数表中已经使用的流水编号复原,并在复原成功后将流水号重置标志位记为1,其中,流水号重置标志位为1表示已使用的流水编号已被复原。
具体地,在流水号复原单元22将流水号重置标志位标识为0之后,会将流水号重置标志位标识为0的更新日期相对应的预设流水号参数表中已经使用的流水编号复原,并在将流水编号复原成功之后,将流水号重置标志位标识为1,以表明该更新日期下的流水编号已被复原,则其它流水号生成装置20中的流水号复原单元22在接收到更新日期相同的换日请求之后,由于该更新日期下的流水号重置标志位已记为1,则流水号复原单元22不需再对该更新日期下的流水编号进行复原动作。
图8是本发明实施例提供的一种流水号生成设备的结构示意图,如图8所示,该流水号生成设备包括处理器81、存储器82、输入装置83和输出装置84;流水号生成设备中处理器81的数量可以是一个或多个,图8中以一个处理器81为例;流水号生成设备中的处理器81、存储器82、输入装置83和输出装置84可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器82作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的流水号生成方法对应的程序指令/模块(例如,流水号生成系统中的多机负载均衡单元10以及流水号生成装置20)。处理器81通过运行存储在存储器82中的软件程序、指令以及模块,从而执行流水号生成设备的各种功能应用以及数据处理,即实现上述的流水号生成方法。
存储器82可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器82可进一步包括相对于处理器81远程设置的存储器,这些远程存储器可以通过网络连接至流水号生成设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置83可用于接收输入的数字或字符信息,以及产生与流水号生成设备的用户设置以及功能控制有关的键信号输入。输出装置84可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种流水号生成方法。
具体地,该流水号生成方法包括:
其中一个流水号生成装置接收多机负载均衡单元转送的流水号生成请求;
流水号生成装置中的流水号生成单元利用流水号生成请求从预设流水号参数表中获取第一流水编号;
流水号生成单元调用流水号生成请求的请求日期,并利用请求日期以及第一流水编号生成与流水号生成请求相对应的流水号。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的流水号生成方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
最后应说明的是,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种流水号生成方法,其特征在于,流水号生成系统包括一个多机负载均衡单元和多个流水号生成装置,每个所述流水号生成装置包括一个流水号生成单元,所述流水号生成方法包括:
其中一个所述流水号生成装置接收所述多机负载均衡单元转送的流水号生成请求;
所述流水号生成装置中的所述流水号生成单元利用所述流水号生成请求从预设流水号参数表中获取第一流水编号;
所述流水号生成单元调用所述流水号生成请求的请求日期,并利用所述请求日期以及所述第一流水编号生成与所述流水号生成请求相对应的流水号。
2.根据权利要求1所述的流水号生成方法,其特征在于,每个所述流水号生成装置还包括一个流水号复原单元,所述流水号生成方法还包括:
其中一个所述流水号生成装置接收所述多机负载均衡单元转发的换日请求,其中,所述换日请求为服务器端向所述流水号生成装置发送的更新日期的请求;
所述流水号生成装置中的所述流水号复原单元基于所述换日请求将所述预设流水号参数表中已经使用的所述流水编号复原。
3.根据权利要求1所述的流水号生成方法,其特征在于,所述流水号生成装置中的所述流水号生成单元利用所述流水号生成请求从预设流水号参数表中获取第一流水编号包括:
所述流水号生成单元基于所述流水号生成请求生成一个随机数,所述随机数为预设范围内的正整数;
所述流水号生成单元基于所述随机数查询目标流水编号组是否被锁定,其中,所述目标流水编号组为所述预设流水号参数表中序号与所述随机数一致的流水编号组;
若所述目标流水编号组未被锁定,则所述流水号生成单元判断所述目标流水编号组中的最小数步长计数器的值是否等于所述目标流水编号组中的最大编号值,其中,所述最小数步长计数器用于记录所述目标流水编号组已被使用的流水编号数量;
若所述最小数步长计数器的值不等于所述目标流水编号组中的最大编号值,则所述流水号生成单元将所述目标流水编号组中未使用的流水编号中的最小编号值确定为所述第一流水编号。
4.根据权利要求3所述的流水号生成方法,其特征在于,若所述最小数步长计数器的值不等于所述目标流水编号组中的最大编号值,则所述流水号生成单元将所述目标流水编号组中未使用的流水编号中的最小编号值确定为所述第一流水编号包括:
若所述最小数步长计数器的值不等于所述目标流水编号组中的最大编号值,则所述流水号生成单元将所述目标流水编号组锁定;
所述流水号生成单元从锁定后的所述目标流水编号组中获取未使用的流水编号中的最小编号值,并将所述最小编号值确定为所述第一流水编号;
所述流水号生成单元将所述最小数步长计数器加1,并将所述目标流水编号组解锁。
5.根据权利要求3所述的流水号生成方法,其特征在于,若所述目标流水编号组已被锁定,则所述流水号生成单元基于所述流水号生成请求生成一个新的随机数,并基于新的随机数查询相应的所述目标流水编号组是否被锁定。
6.根据权利要求3所述的流水号生成方法,其特征在于,若所述最小数步长计数器的值等于所述目标流水编号组中的最大编号值,则所述流水号生成单元基于所述流水号生成请求生成一个新的随机数,并基于新的随机数确定所述第一流水编号。
7.根据权利要求1所述的流水号生成方法,其特征在于,所述流水号生成系统还包括流水编号数据库,所述预设流水号参数表设置于所述流水编号数据库中。
8.根据权利要求2所述的流水号生成方法,其特征在于,所述流水号生成装置中的所述流水号复原单元基于所述换日请求将所述预设流水号参数表中已经使用的所述流水编号复原包括:
所述流水号生成装置判断所述换日请求中携带的更新日期是否大于所述流水号生成装置的当前日期;
若所述更新日期大于所述当前日期,则所述流水号复原单元将所述当前日期替换为所述更新日期,并将与所述更新日期相对应的流水号重置标志位记为0,其中,所述流水号重置标志位为0表示已使用的所述流水编号未复原;
在将所述流水号重置标志位记为0之后,所述流水号复原单元将所述预设流水号参数表中已经使用的所述流水编号复原,并在复原成功后将所述流水号重置标志位记为1,其中,所述流水号重置标志位为1表示已使用的所述流水编号已被复原。
9.一种流水号生成系统,其特征在于,包括一个多机负载均衡单元和多个流水号生成装置,一个所述多机负载均衡单元与多个所述流水号生成装置电连接,所述流水号生成装置执行如权利要求1-8任一项所述的流水号生成方法。
10.一种流水号生成设备,其特征在于,所述流水号生成设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的流水号生成方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的流水号生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111341710.7A CN114047904A (zh) | 2021-11-12 | 2021-11-12 | 一种流水号生成方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111341710.7A CN114047904A (zh) | 2021-11-12 | 2021-11-12 | 一种流水号生成方法、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114047904A true CN114047904A (zh) | 2022-02-15 |
Family
ID=80208925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111341710.7A Pending CN114047904A (zh) | 2021-11-12 | 2021-11-12 | 一种流水号生成方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047904A (zh) |
-
2021
- 2021-11-12 CN CN202111341710.7A patent/CN114047904A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104202423B (zh) | 一种通过软件架构扩展缓存的系统 | |
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
CN110661662B (zh) | 一种轻量级的微服务配置方法 | |
CN103180842A (zh) | 云计算系统和用于该云计算系统的数据同步方法 | |
CN111694638A (zh) | 规则包加载方法、规则包执行方法及终端设备 | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
CN103516734A (zh) | 数据处理方法、设备和系统 | |
CN111147605A (zh) | 服务注册方法、装置和设备 | |
CN107995062B (zh) | 基于rpc的交管综合平台异地业务实时处理方法和系统 | |
CN106993022A (zh) | 用于集群的标识管理方法、标识服务器及相应的系统 | |
CN114047904A (zh) | 一种流水号生成方法、系统、设备及可读存储介质 | |
CN109815047B (zh) | 一种数据处理的方法和相关装置 | |
CN114493602B (zh) | 区块链交易的执行方法、装置、电子设备和存储介质 | |
US20240176762A1 (en) | Geographically dispersed hybrid cloud cluster | |
CN110297860B (zh) | 数据交换方法、装置及相关设备 | |
CN112311904A (zh) | 更新域名记录的方法、装置、存储介质以及域名管理系统 | |
CN115118519B (zh) | 一种基于Hadoop平台的网络主机漏洞扫描新方法 | |
KR102460910B1 (ko) | 데이터 중복 방지를 위한 데이터 저장 방법 및 이를 적용한 데이터 플랫폼 | |
CN113254271B (zh) | 一种数据序列恢复方法、装置、设备及存储介质 | |
US20240104073A1 (en) | Storage management methods and apparatuses for distributed database | |
CN117390078B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN114268540B (zh) | 规则引擎的优化方法、装置及设备 | |
CN113157494B (zh) | 区块链系统中数据备份的方法及装置 | |
US20240104069A1 (en) | Systems and methods of managing state machine systems with compacting distributed log storage | |
CN106953804B (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 |