CN117407388A - 幂等控制方法及其装置、电子设备 - Google Patents
幂等控制方法及其装置、电子设备 Download PDFInfo
- Publication number
- CN117407388A CN117407388A CN202210789472.4A CN202210789472A CN117407388A CN 117407388 A CN117407388 A CN 117407388A CN 202210789472 A CN202210789472 A CN 202210789472A CN 117407388 A CN117407388 A CN 117407388A
- Authority
- CN
- China
- Prior art keywords
- idempotent
- fund transfer
- transfer message
- message
- judgment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012546 transfer Methods 0.000 claims abstract description 216
- 238000012545 processing Methods 0.000 claims abstract description 77
- 238000004364 calculation method Methods 0.000 claims description 65
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000011161 development Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010257 thawing Methods 0.000 description 1
Classifications
-
- 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
-
- 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
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种幂等控制方法及其装置、电子设备,其中,该控制方法包括:基于资金划转信息,生成幂等计算请求,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。本发明解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种幂等控制方法及其装置、电子设备。
背景技术
随着互联网的发展、业务的快速创新以及微服务架构的应用,金融机构的内部系统之间、金融机构的内部系统与外部系统之间以及金融机构系统自身之间的实时资金划转接口不仅数量逐渐增多,而且场景也越来越复杂。如何保证资金划转的唯一性就成为了一个比较繁琐的问题。
当前,往往会在开发中先对报文内容进行解析,然后对解析出来的字段根据不同的业务场景进行唯一性校验,开发过程中开发者必须了解报文中幂等字段的使用规则并且将并发和异常的幂等场景考虑周全,才能使资金划转正确,这便增加了开发的困难。相关技术中的幂等控制方法,是在不同业务场景中采用不同规则,因此,当业务场景比较复杂时,幂等处理部分的开发会加大难度,处理效率也会降低,此外,当业务场景考虑不周全时会导致资金的重复划拨,从而降低了本金融机构的行业内声誉。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种幂等控制方法及其装置、电子设备,以至少解决相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
根据本发明实施例的一个方面,提供了一种幂等控制方法,应用于客户端,包括:基于资金划转信息,生成幂等计算请求,其中,所述幂等计算请求携带有资金划转报文;基于预先建立的计算模型,计算所述资金划转报文的幂等值;将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将所述资金划转报文发送至服务端,其中,所述服务端基于所述资金划转报文,进行资金划转处理。
可选地,在基于预先建立的计算模型,计算所述资金划转报文的幂等值之前,还包括:获取预设时间段内的历史请求报文;基于预设哈希算法,将所述历史请求报文转换为预设请求序列;基于所述预设请求序列,训练所述计算模型,其中,所述计算模型用于输出所述历史请求报文的唯一幂等值。
可选地,基于预先建立的计算模型,计算所述资金划转报文的幂等值的步骤,包括:解析所述资金划转报文,得到唯一序列值;基于所述预设哈希算法,对所述唯一序列值进行哈希计算,得到所述资金划转报文的幂等值。
可选地,基于所述存储结果,进行幂等判断的步骤,包括:在所述存储结果指示存储成功的情况下,确定所述资金划转报文的所述主键为唯一主键,并确定所述幂等判断结果为判定通过;在所述存储结果指示存储不成功的情况下,确定所述资金划转报文的所述主键不为唯一主键,并确定所述幂等判断结果为判定失败。
根据本发明实施例的另一方面,还提供了一种幂等控制方法,应用于服务端,包括:接收客户端发送的资金划转报文;基于预先建立的计算模型,计算所述资金划转报文的幂等值;将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理所述资金划转报文,完成资金划转处理。
可选地,在幂等判断结果指示判定通过的情况下,处理所述资金划转报文的步骤,包括:解析所述资金划转报文,得到报文体信息和业务数据;通过预设业务部件,处理所述报文体信息和所述业务数据,完成资金划转处理。
可选地,在基于所述存储结果,进行幂等判断之后,还包括:在所述幂等判断结果指示判定失败的情况下,将判定失败结果返回所述客户端。
根据本发明实施例的另一方面,还提供了一种幂等控制装置,应用于客户端,包括:生成单元,用于基于资金划转信息,生成幂等计算请求,其中,所述幂等计算请求携带有资金划转报文;第一计算单元,用于基于预先建立的计算模型,计算所述资金划转报文的幂等值;第一存储单元,用于将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;判断单元,用于基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将所述资金划转报文发送至服务端,其中,所述服务端基于所述资金划转报文,进行资金划转处理。
可选地,所述控制装置还包括:第一获取模块,用于在基于预先建立的计算模型,计算所述资金划转报文的幂等值之前,获取预设时间段内的历史请求报文;第一转换模块,用于基于预设哈希算法,将所述历史请求报文转换为预设请求序列;第一训练模块,用于基于所述预设请求序列,训练所述计算模型,其中,所述计算模型用于输出所述历史请求报文的唯一幂等值。
可选地,所述第一计算单元包括:第一解析模块,用于解析所述资金划转报文,得到唯一序列值;第一计算模块,用于基于所述预设哈希算法,对所述唯一序列值进行哈希计算,得到所述资金划转报文的幂等值。
可选地,所述判断单元包括:第一确定模块,用于在所述存储结果指示存储成功的情况下,确定所述资金划转报文的所述主键为唯一主键,并确定所述幂等判断结果为判定通过;第二确定模块,用于在所述存储结果指示存储不成功的情况下,确定所述资金划转报文的所述主键不为唯一主键,并确定所述幂等判断结果为判定失败。
根据本发明实施例的另一方面,还提供了一种幂等控制装置,应用于服务端,包括:接收单元,用于接收客户端发送的资金划转报文;第二计算单元,用于基于预先建立的计算模型,计算所述资金划转报文的幂等值;第二存储单元,用于将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;处理单元,用于基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理所述资金划转报文,完成资金划转处理。
可选地,所述处理单元包括:第二解析模块,用于解析所述资金划转报文,得到报文体信息和业务数据;第一处理模块,用于通过预设业务部件,处理所述报文体信息和所述业务数据,完成资金划转处理。
可选地,所述控制装置还包括:第一返回模块,用于在基于所述存储结果,进行幂等判断之后,在所述幂等判断结果指示判定失败的情况下,将判定失败结果返回所述客户端。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述所述的幂等控制方法。
在本公开中,基于资金划转信息,生成幂等计算请求,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。在本申请中,可通过计算模型,计算资金划转报文的幂等值,并将该幂等值表征为该资金划转报文的主键存储至数据库中,如果存储成功,则表明幂等判断通过,将该资金划转报文发送至服务端,再通过服务端处理该资金划转报文,能够有效降低开发和数据处理复杂度,提高金融机构系统的运行效率以及容错率,进而解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的幂等控制方法的流程图;
图2是根据本发明实施例的另一种可选的幂等控制方法的流程图;
图3是根据本发明实施例的一种可选的幂等控制系统的示意图;
图4是根据本发明实施例的一种可选的幂等控制装置的示意图;
图5是根据本发明实施例的另一种可选的幂等控制装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种对报文进行幂等控制的系统/应用/设备中。本发明提出的基于哈希计算控制幂等处理,能够在进行幂等计算时,不依靠各业务场景的特殊规则,而是通过传送报文的哈希计算得到唯一确定幂等值来进行幂等判断,能够有效避免需要结合业务场景规则进行判断的幂等方法所造成的复杂度高以及容错率低的现象,可以降低开发和数据处理复杂度,提高金融机构系统运行效率以及容错率。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种幂等控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的幂等控制方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,基于资金划转信息,生成幂等计算请求,其中,幂等计算请求携带有资金划转报文。
步骤S102,基于预先建立的计算模型,计算资金划转报文的幂等值。
步骤S103,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果。
步骤S104,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端,其中,服务端基于资金划转报文,进行资金划转处理。
通过上述步骤,可以基于资金划转信息,生成幂等计算请求,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。在本发明实施例中,可通过计算模型,计算资金划转报文的幂等值,并将该幂等值表征为该资金划转报文的主键存储至数据库中,如果存储成功,则表明幂等判断通过,将该资金划转报文发送至服务端,再通过服务端处理该资金划转报文,能够有效降低开发和数据处理复杂度,提高金融机构系统的运行效率以及容错率,进而解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。本发明实施例可应用于客户端。
步骤S101,基于资金划转信息,生成幂等计算请求,其中,幂等计算请求携带有资金划转报文。
在本发明实施例中,客户端可以根据资金划转信息,组装为资金划转报文,之后生成幂等计算请求。
可选的,在基于预先建立的计算模型,计算资金划转报文的幂等值之前,还包括:获取预设时间段内的历史请求报文;基于预设哈希算法,将历史请求报文转换为预设请求序列;基于预设请求序列,训练计算模型,其中,计算模型用于输出历史请求报文的唯一幂等值。
在本发明实施例中,可以先获取预设时间段内(如近一年内)的历史请求报文,根据预设哈希算法(例如,MD5哈希算法),将历史请求报文转换为预设请求序列(即可以通过MD5哈希算法将报文处理为唯一一串请求序列,用于防重发控制),然后基于预设请求序列,训练计算模型,训练后的计算模型能够输出历史请求报文的唯一幂等值。
步骤S102,基于预先建立的计算模型,计算资金划转报文的幂等值。
可选的,基于预先建立的计算模型,计算资金划转报文的幂等值的步骤,包括:解析资金划转报文,得到唯一序列值;基于预设哈希算法,对唯一序列值进行哈希计算,得到资金划转报文的幂等值。
在本发明实施例中,可以先解析资金划转报文,得到唯一序列值,然后可以基于预设哈希算法,对唯一序列值进行哈希计算,得到资金划转报文的幂等值。
步骤S103,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果。
在本发明实施例中,可以将计算得到的幂等值当成资金划转报文的主键存储至预设数据库中来控制幂等,从而能够对该幂等值进行判断是否有重复。
步骤S104,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端,其中,服务端基于资金划转报文,进行资金划转处理。
在本发明实施例中,幂等值会存储在数据库中作为表的主键,并具有唯一性,用主键存储控制幂等,通过存储成功或者失败,做后续逻辑判断,能够有效解决相关技术中按照是反向去数据库查询以进行幂等判断而造成的高并发且效率底的问题。
本实施例可以根据存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端,再由服务器对资金划转报文进行处理。
可选的,基于存储结果,进行幂等判断的步骤,包括:在存储结果指示存储成功的情况下,确定资金划转报文的主键为唯一主键,并确定幂等判断结果为判定通过;在存储结果指示存储不成功的情况下,确定资金划转报文的主键不为唯一主键,并确定幂等判断结果为判定失败。
在本发明实施例中,如果能够成功存储至预设数据库中,则可确定资金划转报文的主键为唯一主键,并确定幂等判断结果为判定通过,之后可以对资金划转报文执行后续业务操作;如果存储至预设数据库失败,则可确定资金划转报文的主键不为唯一主键,并确定幂等判断结果为判定失败,之后可以通知客户端重新处理资金划转报文。
相对于现有的大多数系统幂等判断都是基于服务端的报文体业务主键来判断幂等,然后返回客户端,这样不同的业务会有不同的业务主键,一旦控制不住就会出现幂等问题,本实施例采用的控制幂等方式,可以先进行收发控制,然后再处理业务逻辑,这样可以统一幂等校验规范,减少业务逻辑开发难度,并且本实施例通过加入哈希幂等策略,能够减少系统层面通过业务主键判断的复杂性。
下面结合另一实施例进行详细说明。
实施例二
根据本发明实施例,提供了另一种幂等控制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的另一种可选的幂等控制方法的流程图,如图2所示,该方法包括如下步骤:
步骤S201,接收客户端发送的资金划转报文。
步骤S202,基于预先建立的计算模型,计算资金划转报文的幂等值。
步骤S203,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果。
步骤S204,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
通过上述步骤,可以接收客户端发送的资金划转报文,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。在本发明实施例中,可通过计算模型,计算接收到的资金划转报文的幂等值,并将该幂等值表征为该资金划转报文的主键存储至数据库中,如果存储成功,则表明幂等判断通过,之后可以处理改资金划转报文,以完成资金划转处理,能够有效降低开发和数据处理复杂度,提高金融机构系统的运行效率以及容错率,进而解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。本发明实施例可应用于服务端。
步骤S201,接收客户端发送的资金划转报文。
步骤S202,基于预先建立的计算模型,计算资金划转报文的幂等值。
在本发明实施例中,可以先解析资金划转报文,得到唯一序列值,然后可以基于预设哈希算法(如,MD5哈希算法),对唯一序列值进行哈希计算,得到资金划转报文的幂等值。
步骤S203,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果。
在本发明实施例中,可以将计算得到的幂等值当成资金划转报文的主键存储至预设数据库中来控制幂等,从而能够对该幂等值进行判断是否有重复。
步骤S204,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
在本发明实施例中,幂等值会存储在数据库中作为表的主键,并具有唯一性,用主键存储控制幂等,通过存储成功或者失败,做后续逻辑判断,能够有效解决相关技术中按照是反向去数据库查询以进行幂等判断而造成的高并发且效率底的问题。
本实施例可以根据存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
可选的,在幂等判断结果指示判定通过的情况下,处理资金划转报文的步骤,包括:解析资金划转报文,得到报文体信息和业务数据;通过预设业务部件,处理报文体信息和业务数据,完成资金划转处理。
在本发明实施例中,服务端可以先解析资金划转报文,得到报文体信息和业务数据,然后通过预设业务部件(即服务端进行业务处理的部件),处理报文体信息和业务数据,完成资金划转处理,并将处理结果返回客户端。
可选的,在基于存储结果,进行幂等判断之后,还包括:在幂等判断结果指示判定失败的情况下,将判定失败结果返回客户端。
在本发明实施例中,在幂等判断结果指示判定失败的情况下,可以将判定失败结果返回客户端,以使客户端可以根据判定失败结果重新处理资金划转报文。
相关技术中的幂等校验往往通过业务主键来判断幂等,需要在服务端接收到报文,解析报文以后,查询数据库来判断幂等,这种方式的弊端有:(1)高并发是通过数据库查询,如果相差毫秒级别并不能解决幂等问题;(2)由于不同的业务要通过不同的幂等字段来控制,比如,授信流水号,放款流水号,支付流水号等,不同的业务要通过不同的业务主键来控制幂等,对代码逻辑要求比较高,也比较繁琐。
而本实施例采用基于哈希计算的幂等判断,在资金划转时通过哈希计算确定唯一幂等值后进行幂等判断,能够有效避免相关技术中需要结合业务场景规则进行判断的幂等方法所造成的复杂度高以及容错率低的问题。
下面结合另一实施例进行详细说明。
实施例三
在本发明实施例中,可以基于哈希计算单向唯一的特性,建立幂等处理的计算模型,对接受或发送的资金划转请求的报文通过计算模型得到唯一幂等值,用该唯一幂等值来判定是否是重复请求,以达到避免资金重复划转的目的,实现幂等控制。如此,客户端和服务端对幂等的处理只需要关注请求是否经过了幂等计算模型,而不需要根据不同接口场景和内容去分析判断做幂等控制,不仅降低了开发难度,同时让客户端和服务端对一个请求都能实现幂等控制。
图3是根据本发明实施例的一种可选的幂等控制系统的示意图,如图3所示,包括:客户端和服务端,具体流程如下:
对于客户端:请求系统可以先对资金划转信息进行业务处理,组装报文,然后进行如下操作:1.计算,通过哈希计算,得到一个唯一的幂等值;2.存储,将该幂等值表征为数据库存储主键:哈希字符串,其他字段:报文存储至数据库;3.判断,通过存储结果,进行幂等判断,如果存储失败,出现幂等,则通知请求系统幂等判断未通过,否则存储成功,幂等校验通过,可以发送报文;4.发送报文到服务端。
对于服务端:先接收报文,然后进行如下操作:5.处理报文,解析报文;6.计算,通过哈希计算,得到一个唯一的幂等值;7.存储,将该幂等值表征为数据库存储主键:哈希字符串,其他字段:报文存储至数据库;8.判断,通过存储结果,进行幂等判断,并获取报文内容;9.成功,则对报文内容进行业务处理:处理报文体信息处理业务数据;10.返回响应报文,即返回客户端响应报文;11.如果存储失败,出现幂等,返回响应报文出现幂等判断未通过。
在本实施例中,能够有效解决相关技术中的幂等处理方法需要结合业务规则进行唯一性校验,当业务增加并且规则较为复杂时,会产生不可避免的场景分析遗漏以及数据处理效率低的问题,本实施例通过哈希确定唯一性,可以省去后续根据多种不同业务规则进行幂等判断的复杂逻辑,简化资金划转时校验复杂度并提高处理效率和准确率,不仅降低了开发上的复杂度,提高了系统运行效率,同时也降低了资金划转时幂等判断的错误率。
下面结合另一实施例进行详细说明。
实施例四
本实施例中提供的一种幂等控制装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图4是根据本发明实施例的一种可选的幂等控制装置的示意图,如图4所示,该控制装置可以包括:生成单元40,第一计算单元41,第一存储单元42,判断单元43,其中,
生成单元40,用于基于资金划转信息,生成幂等计算请求,其中,幂等计算请求携带有资金划转报文;
第一计算单元41,用于基于预先建立的计算模型,计算资金划转报文的幂等值;
第一存储单元42,用于将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果;
判断单元43,用于基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端,其中,服务端基于资金划转报文,进行资金划转处理。
上述控制装置,可以通过生成单元40基于资金划转信息,生成幂等计算请求,通过第一计算单元41基于预先建立的计算模型,计算资金划转报文的幂等值,通过第一存储单元42将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,通过判断单元43基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。在本发明实施例中,可通过计算模型,计算资金划转报文的幂等值,并将该幂等值表征为该资金划转报文的主键存储至数据库中,如果存储成功,则表明幂等判断通过,将该资金划转报文发送至服务端,再通过服务端处理该资金划转报文,能够有效降低开发和数据处理复杂度,提高金融机构系统的运行效率以及容错率,进而解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
可选的,控制装置还包括:第一获取模块,用于在基于预先建立的计算模型,计算资金划转报文的幂等值之前,获取预设时间段内的历史请求报文;第一转换模块,用于基于预设哈希算法,将历史请求报文转换为预设请求序列;第一训练模块,用于基于预设请求序列,训练计算模型,其中,计算模型用于输出历史请求报文的唯一幂等值。
可选的,第一计算单元包括:第一解析模块,用于解析资金划转报文,得到唯一序列值;第一计算模块,用于基于预设哈希算法,对唯一序列值进行哈希计算,得到资金划转报文的幂等值。
可选的,判断单元包括:第一确定模块,用于在存储结果指示存储成功的情况下,确定资金划转报文的主键为唯一主键,并确定幂等判断结果为判定通过;第二确定模块,用于在存储结果指示存储不成功的情况下,确定资金划转报文的主键不为唯一主键,并确定幂等判断结果为判定失败。
上述的控制装置还可以包括处理器和存储器,上述生成单元40,第一计算单元41,第一存储单元42,判断单元43等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:基于资金划转信息,生成幂等计算请求,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将资金划转报文发送至服务端。
下面结合另一实施例进行详细说明。
实施例五
本实施例中提供的另一种幂等控制装置包含了多个实施单元,每个实施单元对应于上述实施例二中的各个实施步骤。
图5是根据本发明实施例的另一种可选的幂等控制装置的示意图,如图5所示,该控制装置可以包括:接收单元50,第二计算单元51,第二存储单元52,处理单元53,其中,
接收单元50,用于接收客户端发送的资金划转报文;
第二计算单元51,用于基于预先建立的计算模型,计算资金划转报文的幂等值;
第二存储单元52,用于将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果;
处理单元53,用于基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
上述控制装置,可以通过接收单元50接收客户端发送的资金划转报文,通过第二计算单元51基于预先建立的计算模型,计算资金划转报文的幂等值,通过第二存储单元52将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,通过处理单元53基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。在本发明实施例中,可通过计算模型,计算接收到的资金划转报文的幂等值,并将该幂等值表征为该资金划转报文的主键存储至数据库中,如果存储成功,则表明幂等判断通过,之后可以处理改资金划转报文,以完成资金划转处理,能够有效降低开发和数据处理复杂度,提高金融机构系统的运行效率以及容错率,进而解决了相关技术中对报文进行幂等处理时,容易因业务场景考虑不全面而导致资金的重复划转的技术问题。
可选的,处理单元包括:第二解析模块,用于解析资金划转报文,得到报文体信息和业务数据;第一处理模块,用于通过预设业务部件,处理报文体信息和业务数据,完成资金划转处理。
可选的,控制装置还包括:第一返回模块,用于在基于存储结果,进行幂等判断之后,在幂等判断结果指示判定失败的情况下,将判定失败结果返回客户端。
上述的控制装置还可以包括处理器和存储器,上述接收单元50,第二计算单元51,第二存储单元52,处理单元53等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收客户端发送的资金划转报文,基于预先建立的计算模型,计算资金划转报文的幂等值,将幂等值表征为资金划转报文的主键,并存储至预设数据库中,得到存储结果,基于存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理资金划转报文,完成资金划转处理。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的幂等控制方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种幂等控制方法,其特征在于,应用于客户端,包括:
基于资金划转信息,生成幂等计算请求,其中,所述幂等计算请求携带有资金划转报文;
基于预先建立的计算模型,计算所述资金划转报文的幂等值;
将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;
基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将所述资金划转报文发送至服务端,其中,所述服务端基于所述资金划转报文,进行资金划转处理。
2.根据权利要求1所述的控制方法,其特征在于,在基于预先建立的计算模型,计算所述资金划转报文的幂等值之前,还包括:
获取预设时间段内的历史请求报文;
基于预设哈希算法,将所述历史请求报文转换为预设请求序列;
基于所述预设请求序列,训练所述计算模型,其中,所述计算模型用于输出所述历史请求报文的唯一幂等值。
3.根据权利要求2所述的控制方法,其特征在于,基于预先建立的计算模型,计算所述资金划转报文的幂等值的步骤,包括:
解析所述资金划转报文,得到唯一序列值;
基于所述预设哈希算法,对所述唯一序列值进行哈希计算,得到所述资金划转报文的幂等值。
4.根据权利要求1所述的控制方法,其特征在于,基于所述存储结果,进行幂等判断的步骤,包括:
在所述存储结果指示存储成功的情况下,确定所述资金划转报文的所述主键为唯一主键,并确定所述幂等判断结果为判定通过;
在所述存储结果指示存储不成功的情况下,确定所述资金划转报文的所述主键不为唯一主键,并确定所述幂等判断结果为判定失败。
5.一种幂等控制方法,其特征在于,应用于服务端,包括:
接收客户端发送的资金划转报文;
基于预先建立的计算模型,计算所述资金划转报文的幂等值;
将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;
基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理所述资金划转报文,完成资金划转处理。
6.根据权利要求5所述的控制方法,其特征在于,在幂等判断结果指示判定通过的情况下,处理所述资金划转报文的步骤,包括:
解析所述资金划转报文,得到报文体信息和业务数据;
通过预设业务部件,处理所述报文体信息和所述业务数据,完成资金划转处理。
7.根据权利要求5所述的控制方法,其特征在于,在基于所述存储结果,进行幂等判断之后,还包括:
在所述幂等判断结果指示判定失败的情况下,将判定失败结果返回所述客户端。
8.一种幂等控制装置,其特征在于,应用于客户端,包括:
生成单元,用于基于资金划转信息,生成幂等计算请求,其中,所述幂等计算请求携带有资金划转报文;
第一计算单元,用于基于预先建立的计算模型,计算所述资金划转报文的幂等值;
第一存储单元,用于将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;
判断单元,用于基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,将所述资金划转报文发送至服务端,其中,所述服务端基于所述资金划转报文,进行资金划转处理。
9.一种幂等控制装置,其特征在于,应用于服务端,包括:
接收单元,用于接收客户端发送的资金划转报文;
第二计算单元,用于基于预先建立的计算模型,计算所述资金划转报文的幂等值;
第二存储单元,用于将所述幂等值表征为所述资金划转报文的主键,并存储至预设数据库中,得到存储结果;
处理单元,用于基于所述存储结果,进行幂等判断,并在幂等判断结果指示判定通过的情况下,处理所述资金划转报文,完成资金划转处理。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的幂等控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210789472.4A CN117407388A (zh) | 2022-07-06 | 2022-07-06 | 幂等控制方法及其装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210789472.4A CN117407388A (zh) | 2022-07-06 | 2022-07-06 | 幂等控制方法及其装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407388A true CN117407388A (zh) | 2024-01-16 |
Family
ID=89489472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210789472.4A Pending CN117407388A (zh) | 2022-07-06 | 2022-07-06 | 幂等控制方法及其装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407388A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117952614A (zh) * | 2024-03-14 | 2024-04-30 | 深圳市金政软件技术有限公司 | 支付防重方法、装置、终端设备和可读存储介质 |
-
2022
- 2022-07-06 CN CN202210789472.4A patent/CN117407388A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117952614A (zh) * | 2024-03-14 | 2024-04-30 | 深圳市金政软件技术有限公司 | 支付防重方法、装置、终端设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263024B (zh) | 数据处理方法、终端设备及计算机存储介质 | |
CN111177005B (zh) | 业务应用的测试方法、装置、服务器和存储介质 | |
CN108305055B (zh) | 支付测试方法及装置 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
CN110729028A (zh) | 一种健康数据处理方法、装置、电子设备及存储介质 | |
CN107153646B (zh) | 一种数据处理方法和设备 | |
CN112712429A (zh) | 汇款业务审核方法、装置、计算机设备和存储介质 | |
CN117407388A (zh) | 幂等控制方法及其装置、电子设备 | |
CN111124421B (zh) | 区块链智能合约的异常合约数据检测方法和装置 | |
JP7509886B2 (ja) | モノのインターネットにおいてサブスクリプションデータをプッシュするための方法および装置、並びにそれらのデバイスおよび記憶媒体 | |
CN115499122B (zh) | 外部合作方接入方法、电子设备以及计算机存储介质 | |
CN116339690A (zh) | 业务流程的执行方法及其装置、电子设备及存储介质 | |
CN113360363B (zh) | 微服务系统的测试方法、装置、设备和计算机存储介质 | |
CN114240335A (zh) | 一种数据处理的方法和装置 | |
CN113961632A (zh) | 消息数据处理方法、装置及电子设备 | |
CN110349357B (zh) | 基于终端指令转发的远程自动清点系统、装置及方法 | |
CN112380128A (zh) | 智能合约的自动测试方法、装置、计算机设备和存储介质 | |
CN111414427A (zh) | 一种适用于准实时服务的数据处理方法及装置 | |
CN114266607B (zh) | 一种发票认证方法及装置 | |
CN112700308B (zh) | 订单生成方法、装置、终端和存储介质 | |
CN110298659A (zh) | 基于矩阵计算的系统检测方法、系统、介质及设备 | |
CN110717748A (zh) | 一种网络支付的方法以及相关设备 | |
US12045262B2 (en) | Reconciliation systems and methods for unbounded streams | |
US20240104558A1 (en) | Blockchain transaction execution method and apparatus, program product, device, and medium | |
US20240053999A1 (en) | Reconciliation systems and methods for unbounded streams |
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 |