CN112835916A - 基于api接口的业务处理方法、设备及计算机可读存储介质 - Google Patents
基于api接口的业务处理方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112835916A CN112835916A CN202110055221.9A CN202110055221A CN112835916A CN 112835916 A CN112835916 A CN 112835916A CN 202110055221 A CN202110055221 A CN 202110055221A CN 112835916 A CN112835916 A CN 112835916A
- Authority
- CN
- China
- Prior art keywords
- service
- request
- lock
- server
- api
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 17
- 230000032683 aging Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 18
- 230000007246 mechanism Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 241000533950 Leucojum Species 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- 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
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于API接口的业务处理方法、设备及计算机可读存储介质,涉及计算机技术领域。通过获取客户端调用API接口上传的包括有请求参数的业务请求,对请求参数进行加密处理后得到请求标识,根据请求标识获取业务锁,根据业务锁从业务请求中获取相应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种基于API接口的业务处理方法、设备及计算机可读存储介质。
背景技术
随着互联网技术发展,越来越多的分布式系统提供API接口供内部和外部系统调用,在执行多种操作后,用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用,例如前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;一笔付款请求,只扣除用户的一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;创建业务订单,一次业务请求只能创建一个,诸如此类的业务逻辑都需要基于API接口的幂等性来支持,目前通过以下两种方式来实现接口幂等性:
方法一是调用端在和Web端交互的接口通过前端拦截的方式处理,例如防止表单重复提交,按钮置灰、隐藏、不可点击等方式;或者在调用API前,先标记该请求正在处理,接收到API响应后将标记设置为处理完成,从而实现接口幂等性;方法二是采用数据库的悲观锁或乐观锁,在API接口对数据库操作时进行加锁处理保证只执行一次。
但是方式一对调用端自身的性能要求高,而且实际执行效果不佳,无法防止模拟请求进行调用时出现重复操作的问题;方式二悲观锁机制性能不高,无法应对高并发业务场景;乐观锁机制性能高于悲观锁,但是需要数据库表中必须有版本字段。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种基于API接口的业务处理方法,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
本申请还提出另一种基于API接口的业务处理方法。
本申请还提出一种具有上述基于API接口的业务处理方法的服务器。
本申请还提出一种具有上述基于API接口的业务处理方法的客户端。
本申请还提出一种具有上述基于API接口的业务处理方法的电子设备。
本申请还提出一种具有上述基于API接口的业务处理方法的计算机可读存储介质。
根据本申请的第一方面实施例的基于API接口的业务处理方法,包括:获取客户端调用API接口上传的业务请求,所述业务请求包括请求参数;
对所述请求参数进行加密处理得到请求标识;
根据所述请求标识获取业务锁;
根据所述业务锁从所述业务请求获取相应的目标业务进行业务处理。
根据本申请实施例的基于API接口的业务处理方法,至少具有如下有益效果:通过获取客户端调用API接口上传的包括有请求参数的业务请求,对请求参数进行加密处理后得到请求标识,根据请求标识获取业务锁,根据业务锁从业务请求中获取相应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
根据本申请的一些实施例,所述根据所述请求标识获取业务锁,包括:
根据所述请求标识获取预存的请求信息;
通过预设的操作指令调用所述请求信息,生成所述业务锁。
根据本申请的一些实施例,所述请求信息包括时效信息,所述时效信息用于标识所述业务锁的有效时间。
根据本申请的一些实施例,还包括:
若根据所述请求标识无法获取业务锁,则不从所述业务请求获取目标业务进行业务处理并返回所述业务请求给所述客户端。
根据本申请的一些实施例,所述根据所述业务锁从所述业务请求选择获取相应的目标业务请求进行业务处理,还包括:
获取所述目标业务进行业务处理后的处理结果;
释放所述业务锁,并将所述处理结果返回给所述客户端。
根据本申请的第二方面实施例的基于API接口的业务处理方法,包括:生成业务请求,所述业务请求包括请求参数;
调用服务器的API接口将所述业务请求发送给所述服务器,由所述服务器为所述业务请求配置业务锁后获取对应的目标业务进行业务处理。
根据本申请实施例的基于API接口的业务处理方法,至少具有如下有益效果:通过生成包括请求参数的业务请求,调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后获取对应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
根据本申请的第三方面实施例的服务器,包括:第一获取模块,所述第一获取模块用于获取客户端调用API接口上传的业务请求,所述业务请求包括请求参数;
处理模块,所述处理模块用于对所述请求参数进行加密处理得到请求标识;
第二获取模块,所述第二获取模块用于根据所述请求标识获取业务锁;
业务模块,所述业务模块用于根据所述业务锁从所述业务请求获取相应的目标业务进行业务处理。
根据本申请实施例的基于API接口的业务处理方法,至少具有如下有益效果:通过第一获取模块获取客户端调用API接口上传的包括有请求参数的业务请求,处理模块对请求参数进行加密处理后得到请求标识,第二获取模块根据请求标识获取业务锁,业务模块根据业务锁从业务请求中获取相应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
根据本申请的第四方面实施例的客户端,包括:生成模块,所述生成模块用于生成业务请求,所述业务请求包括请求参数;
调用模块,所述调用模块用于调用服务器的API接口将所述业务请求发送给所述服务器,由所述服务器为所述业务请求配置业务锁后获取对应的目标业务进行业务处理。
根据本申请实施例的客户端,至少具有如下有益效果:通过生成模块生成包括请求参数的业务请求,调用模块调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后获取对应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
根据本申请的第五方面实施例的电子设备,包括:至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如第一方面和第二方面所述的基于API接口的业务处理方法。
根据本申请的电子设备,至少具有如下有益效果:通过执行第一方面和第二方面实施例中提到的基于API接口的业务处理方法,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
根据本申请的第六方面实施例的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面和第二方面所述的基于API接口的业务处理方法。
根据本申请的计算机可读存储介质,至少具有如下有益效果:通过执行第一方面和第二方面实施例中提到的基于API接口的业务处理方法,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1为本申请实施例中业务处理方法的一具体流程示意图;
图2为本申请实施例中业务处理方法的步骤S130的一具体流程示意图;
图3为本申请实施例中业务处理方法的另一具体流程示意图;
图4为本申请实施例中业务处理方法的又一具体流程示意图;
图5为本申请实施例中业务处理方法的一具体应用实例图;
图6为本申请实施例中服务器的一具体模块示意图;
图7为本申请实施例中客户端的一具体模块示意图。
附图标记:
第一获取模块110、处理模块120、第二获取模块130、业务模块140;生成模块210、调用模块220。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
需要说明的是,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同流程图中的顺序执行所示出或描述的步骤。如果涉及到“若干”,其含义是一个以上,如果涉及到“多个”,其含义是两个以上,如果涉及到“以下”,均应理解为包括本数。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本申请的实施例,并且除非另外要求,否则不会对本申请的范围施加限制。大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
需要说明的是,如无特殊说明,在实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
随着互联网技术发展,越来越多的分布式系统提供API接口供内部和外部系统调用,在执行多种操作后,用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用,例如前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果;一笔付款请求,只扣除用户的一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱;创建业务订单,一次业务请求只能创建一个,诸如此类的业务逻辑都需要基于API接口的幂等性来支持,目前通过以下两种方式来实现接口幂等性:
方法一是调用端在和Web端交互的接口通过前端拦截的方式处理,例如防止表单重复提交,按钮置灰、隐藏、不可点击等方式;或者在调用API前,先标记该请求正在处理,接收到API响应后将标记设置为处理完成,从而实现接口幂等性;方法二是采用数据库的悲观锁或乐观锁,在API接口对数据库操作时进行加锁处理保证只执行一次。
但是方式一对调用端自身的性能要求高,而且实际执行效果不佳,无法防止模拟请求进行调用时出现重复操作的问题;方式二悲观锁机制性能不高,无法应对高并发业务场景;乐观锁机制性能高于悲观锁,但是需要数据库表中必须有版本字段。
基于此,本申请实施例提供了一种基于API接口的业务处理方法、设备及计算机可读存储介质,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
需要说明的是,本申请实施例中提到的服务器和客户端通过API接口进行调用连接,客户端可以通过调用服务器的API(Application Programming Interface,应用程序接口)接口上传相关的业务请求以使服务器能够根据业务请求进行相应的业务处理。并且客户端能够同时上传多个不同的业务请求,服务器基于分布式系统对其进行相应业务处理。
第一方面,本申请实施例提供了一种应用于服务器的基于API接口的业务处理方法。
在一些实施例中,参照图1,示出了本申请实施例中基于API接口的业务处理方法的流程示意图。其具体包括步骤:
S110,获取客户端调用API接口上传的业务请求;
S120,对请求参数进行加密处理得到请求标识;
S130,根据请求标识获取业务锁;
S140,根据业务锁从业务请求获取相应的目标业务进行业务处理。
在步骤S110中,服务器的API接口被客户端调用,当客户端处需要执行相关的业务处理时,将待处理的目标业务封装成业务请求,通过服务器的API接口上传业务请求至服务器,服务器会获取到上传的业务请求,其中业务请求包括请求参数,根据不同待处理的目标业务不同,请求参数不同,其中请求参数用于标识客户端待处理的目标业务的具体对象及标识,通过请求参数能够确定客户端所要请求的目标业务及需要配置的业务锁;在可能实施的应用实例中,请求参数包括客户端生成的32位UUID(Universally UniqueIdentifier,通用唯一识别码)和其他业务参数。UUID用于保证客户端的业务请求的唯一性,在实际应用中为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法;UUID的生成可以通过多种算法生成,例如雪花算法、SHA1(Secure Hash Algorithm 1)算法等。
在步骤S120中,服务器获取到业务请求中的请求参数后,对请求参数进行加密处理,能够得到请求标识,具体地说,服务器根据请求参数中的UUID和其他业务参数进行加密处理后生成业务锁的唯一锁ID即请求标识。在实际应用中,通过MD5算法对UUID和其他业务参数进行加密处理后生成客户端所上传的业务请求的唯一标识LockKey。其中LockKey包括了业务请求所需要配置的业务锁的ID即LockKeyID以及业务锁的参数值LockKeyValue,用于后续获取业务锁。
在步骤S130中,服务器根据生成的请求标识获取业务锁,具体地说,客户端所请求的业务对应的业务锁都具有唯一性,而服务器需要通过调用数据库Redis(RemoteDictionary Server,远程字典服务)进行业务锁的获取。其中Redis是基于BSD(BerkeleySoftware Distribution,伯克利软件发行版)协议的key-value数据库。服务器可以通过请求标识从Redis中获取到对应的业务锁。
在一些实施例中,如图2所示,步骤S130具体还包括步骤:
S131,根据请求标识获取预存的请求信息;
S132,通过预设的操作指令调用请求信息,生成业务锁。
在步骤S131中,服务器根据请求标识获取到预存的请求信息,即从请求标识中提取到对应的请求信息,例如业务锁的锁ID,业务锁的值等信息,其中锁ID和业务锁锁值用于服务器向Redis中获取对应的业务锁。通过采用Redis能够实现业务锁的获取,从而应用于分布式系统中,以应对高并发的业务场景。
在一些实施例中,请求信息包括时效信息,该时效信息用于标识业务锁的有效时间,具体地说,请求信息包括业务锁的锁ID即LockKeyID、业务锁的锁值即LockKeyValue、业务锁的时间戳EX、业务锁的过期时间Time、业务锁是否存在NX。通过时间戳EX和过期时间Time能够标识业务锁的有效时间以及具体过期时间,通过为业务锁设置过期时间防止因客户端出现异常导致业务锁无法释放的问题。
在步骤S132中,服务器通过预设的操作指令向Redis获取对应的业务锁,具体地说,通过请求标识对应的请求信息,调用Redis中的Set操作去获取业务锁,例如操作指令为Set(LockKeyID,LockKeyValue,EX,Time,NX),从而获取到对应的业务锁。
在一些实施例中,若服务器无法根据请求标识从Redis中获取到业务锁,则表示服务器执行的Set操作失败,无法获取到业务锁,即该业务请求属于重复请求,因此无法根据重复的业务请求获取到对应的目标业务进行业务处理,服务器会将该业务请求返回给客户端,以告知客户端请求业务失败。
在步骤S140中,当服务器获取到业务锁后,会将业务锁配置在业务请求上,根据该业务请求确定相应的目标业务,对目标业务进行业务处理,其中目标业务是指客户端实际请求的业务内容,服务器当接收到配置有业务锁的业务请求后,确定该业务请求为第一次发起的业务请求,非重复发起的业务请求,因此能够根据该业务请求去确定客户端所请求的业务内容,对该业务内容进行业务处理,从而完成业务处理。
在一些实施例中,参考图3,本申请实施例中提到的基于API接口的业务处理方法具体还包括:
步骤S150,获取目标业务进行业务处理后的处理结果,释放业务锁,并将处理结果返回给客户端。
在步骤S150中,服务器根据获取到的目标业务进行业务处理,会获取业务处理后的处理结果,并将业务请求上配置的业务锁进行释放,将处理后得到的处理结果返回给客户端进行获取,需要说明的是,释放业务锁是指将业务请求配置的业务锁移除,使得业务请求不再带有业务锁,以便后续客户端进行相应的业务请求后,能够再次获得业务锁;客户端接收到业务处理后的业务结果即可进行相应的显示和反馈。
在本申请实施例中,通过获取客户端调用API接口上传的包括有请求参数的业务请求,对请求参数进行加密处理后得到请求标识,根据请求标识获取业务锁,根据业务锁从业务请求中获取相应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
第二方面,本申请实施例提供了一种应用于客户端的基于API接口的业务处理方法。
在一些实施例中,参照图4,示出了本申请实施例中基于API接口的业务处理方法的流程示意图。其具体包括步骤:
S210,生成业务请求,业务请求包括请求参数;
S220,调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后,获取对应的目标业务进行业务处理。
在步骤S210中,客户端根据需要请求的目标业务封装成业务请求,其中封装成的业务请求包括目标业务的请求参数,根据不同待处理的目标业务不同,请求参数不同,其中请求参数用于标识客户端待处理的目标业务的具体对象及标识,通过请求参数能够确定客户端所要请求的目标业务及需要配置的业务锁;在可能实施的应用实例中,请求参数包括客户端生成的32位UUID和其他业务参数。UUID用于保证客户端的业务请求的唯一性,在实际应用中为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法;UUID的生成可以通过多种算法生成,例如雪花算法、SHA1算法等。
在步骤S220中,客户端会调用服务器的API接口,该API接口用于客户端上传业务请求给服务器,具体地说,客户端通过调用服务器的API接口与服务器建立通信连接,将封装后的业务请求发送给服务器,服务器接收到业务请求后,执行如第一方面实施例中提到的业务处理方法。
具体地说,服务器接收到业务请求后,会获取到业务请求中的请求参数后,对请求参数进行加密处理,能够得到请求标识,服务器根据请求参数中的UUID和其他业务参数进行加密处理后生成业务锁的唯一锁ID即请求标识。在实际应用中,通过MD5算法对UUID和其他业务参数进行加密处理后生成客户端所上传的业务请求的唯一标识LockKey。其中LockKey包括了业务请求所需要配置的业务锁的ID即LockKeyID以及业务锁的参数值LockKeyValue,用于后续获取业务锁。
当服务器获取到业务锁后,会将业务锁配置在业务请求上,根据该业务请求确定相应的目标业务,对目标业务进行业务处理,其中目标业务是指客户端实际请求的业务内容,服务器当接收到配置有业务锁的业务请求后,确定该业务请求为第一次发起的业务请求,非重复发起的业务请求,因此能够根据该业务请求去确定客户端所请求的业务内容,对该业务内容进行业务处理,从而完成业务处理。
服务器根据获取到的目标业务进行业务处理,会获取业务处理后的处理结果,并将业务请求上配置的业务锁进行释放,将处理后得到的处理结果返回给客户端进行获取,需要说明的是,释放业务锁是指将业务请求配置的业务锁移除,使得业务请求不再带有业务锁,以便后续客户端进行相应的业务请求后,能够再次获得业务锁;客户端接收到业务处理后的业务结果即可进行相应的显示和反馈。
需要说明的是,若客户端生成的业务请求为重复的业务请求,则无法在服务器处获取到对应的业务锁,服务器无法根据未配置有业务锁的业务请求执行相应的业务处理,并且服务器会将业务请求返回给客户端,客户端通过接收到返回的业务请求确定未经过处理,服务器也能够通过该方式避免接收到客户端的重复请求。
在本申请实施例中,通过生成包括请求参数的业务请求,调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后获取对应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
在可能实施的应用实例中,参考图5,客户端根据需要处理的业务封装生成业务请求后,客户端会调用服务器的API接口,将业务请求上传至服务器端,服务器接收到业务请求后,对业务请求的请求参数进行加密处理后得到请求标识LockKey,根据请求标识LockKey调用Redis的Set操作获取业务锁,判断是否获取到对应的业务锁,若业务请求能够获取到对应的业务锁,则表示该业务请求为第一次请求,服务器能够根据配置有业务锁的业务请求进行业务处理,从而得到对应的业务处理结果,服务器释放业务请求配置的业务锁并返回处理结果给客户端,从而完成整个业务处理流程;若业务请求无法获取到对应的业务锁,则表示该业务请求为重复的业务请求,服务器无法根据未配置有业务锁的业务请求进行业务处理,将该业务请求返回给客户端。
第三方面,本申请实施例提供了一种用于执行第一方面实施例中提到的基于API接口的业务处理方法的服务器。
在一些实施例中,参照图6,示出了本申请实施例中服务器的模块示意图。其具体包括:第一获取模块110,处理模块120,第二获取模块130,业务模块140;
其中第一获取模块110用于获取客户端调用API接口上传的业务请求,业务请求包括请求参数;
处理模块120用于对请求参数进行加密处理得到请求标识;
第二获取模块130用于根据请求标识获取业务锁;
业务模块140用于根据业务锁从业务请求选择获取相应的目标业务请求进行业务处理。
需要说明的是,上述各个模块的具体功能及介绍已在第一方面实施例中到的基于API接口的业务处理方法详细说明,故不再赘述。
在本申请实施例中,通过第一获取模块110获取客户端调用API接口上传的包括有请求参数的业务请求,处理模块120对请求参数进行加密处理后得到请求标识,第二获取模块130根据请求标识获取业务锁,业务模块140根据业务锁从业务请求中获取相应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
第四方面,本申请实施例提供了一种用于执行第而方面实施例中提到的基于API接口的业务处理方法的客户端。
在一些实施例中,参照图7,示出了本申请实施例中客户端的模块示意图。其具体包括:生成模块210和调用模块220;
其中,生成模块210用于生成业务请求,业务请求包括请求参数;
调用模块220用于调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后获取对应的目标业务进行业务处理。
需要说明的是,上述各个模块的具体功能及介绍已在第一方面实施例中到的表单处理方法详细说明,故不再赘述。
在本申请实施例中,通过生成模块210生成包括请求参数的业务请求,调用模块220调用服务器的API接口将业务请求发送给服务器,由服务器为业务请求配置业务锁后获取对应的目标业务进行业务处理,能够简单并快捷地实现接口幂等性,并且能够应付高并发的业务场景,确保分布式系统的API接口不重复获取相同的数据。
第五方面,本申请实施例还提供了一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行第一方面或第二方面实施例中的业务处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请第一方面或第二方面实施例中的业务处理方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述第一方面或第二方面实施例中的业务处理方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述第一方面或第二方面实施例中的业务处理方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述第一方面或第二方面实施例中的业务处理方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面或第二方面实施例中的业务处理方法。
第六方面,本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:执行第一方面或第二方面实施例中的业务处理方法;
在一些实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被第五方面实施例的电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述第一方面或第二方面实施例中的业务处理方法。
以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书的描述中,参考术语“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。
Claims (10)
1.基于API接口的业务处理方法,其特征在于,包括:
获取客户端调用API接口上传的业务请求,所述业务请求包括请求参数;
对所述请求参数进行加密处理得到请求标识;
根据所述请求标识获取业务锁;
根据所述业务锁从所述业务请求获取相应的目标业务进行业务处理。
2.根据权利要求1所述的业务处理方法,其特征在于,所述根据所述请求标识获取业务锁,包括:
根据所述请求标识获取预存的请求信息;
通过预设的操作指令调用所述请求信息,生成所述业务锁。
3.根据权利要求2所述的业务处理方法,其特征在于,所述请求信息包括时效信息,所述时效信息用于标识所述业务锁的有效时间。
4.根据权利要求1所述的业务处理方法,其特征在于,还包括:
若根据所述请求标识无法获取业务锁,则不从所述业务请求获取目标业务进行业务处理并返回所述业务请求给所述客户端。
5.根据权利要求1所述的业务处理方法,其特征在于,所述根据所述业务锁从所述业务请求选择获取相应的目标业务请求进行业务处理,还包括:
获取所述目标业务进行业务处理后的处理结果;
释放所述业务锁,并将所述处理结果返回给所述客户端。
6.基于API接口的业务处理方法,其特征在于,包括:
生成业务请求,所述业务请求包括请求参数;
调用服务器的API接口将所述业务请求发送给所述服务器,由所述服务器为所述业务请求配置业务锁后获取对应的目标业务进行业务处理。
7.服务器,其特征在于,包括:
第一获取模块,所述第一获取模块用于获取客户端调用API接口上传的业务请求,所述业务请求包括请求参数;
处理模块,所述处理模块用于对所述请求参数进行加密处理得到请求标识;
第二获取模块,所述第二获取模块用于根据所述请求标识获取业务锁;
业务模块,所述业务模块用于根据所述业务锁从所述业务请求获取相应的目标业务进行业务处理。
8.客户端,其特征在于,包括:
生成模块,所述生成模块用于生成业务请求,所述业务请求包括请求参数;
调用模块,所述调用模块用于调用服务器的API接口将所述业务请求发送给所述服务器,由所述服务器为所述业务请求配置业务锁后获取对应的目标业务进行业务处理。
9.电子设备,其特征在于,包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述指令时实现如权利要求1至6任一项所述的基于API接口的业务处理方法。
10.计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至6任一项所述的基于API接口的业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110055221.9A CN112835916A (zh) | 2021-01-15 | 2021-01-15 | 基于api接口的业务处理方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110055221.9A CN112835916A (zh) | 2021-01-15 | 2021-01-15 | 基于api接口的业务处理方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835916A true CN112835916A (zh) | 2021-05-25 |
Family
ID=75928471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110055221.9A Pending CN112835916A (zh) | 2021-01-15 | 2021-01-15 | 基于api接口的业务处理方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835916A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592471A (zh) * | 2021-07-29 | 2021-11-02 | 中国人民银行清算总中心 | 支付交易应用系统及方法 |
CN113610537A (zh) * | 2021-08-05 | 2021-11-05 | 北京云从科技有限公司 | 请求执行方法、服务器、计算机设备和存储介质 |
CN114095575A (zh) * | 2021-09-27 | 2022-02-25 | 上海信宝博通电子商务有限公司 | 数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351342A (zh) * | 2019-06-20 | 2019-10-18 | 平安科技(深圳)有限公司 | 业务指令处理方法、装置、计算机设备和存储介质 |
CN111625301A (zh) * | 2020-05-25 | 2020-09-04 | 泰康保险集团股份有限公司 | 幂等处理方法、装置、设备及存储介质 |
CN111865970A (zh) * | 2020-07-17 | 2020-10-30 | 北京百度网讯科技有限公司 | 用于实现接口幂等性的方法和装置 |
-
2021
- 2021-01-15 CN CN202110055221.9A patent/CN112835916A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351342A (zh) * | 2019-06-20 | 2019-10-18 | 平安科技(深圳)有限公司 | 业务指令处理方法、装置、计算机设备和存储介质 |
CN111625301A (zh) * | 2020-05-25 | 2020-09-04 | 泰康保险集团股份有限公司 | 幂等处理方法、装置、设备及存储介质 |
CN111865970A (zh) * | 2020-07-17 | 2020-10-30 | 北京百度网讯科技有限公司 | 用于实现接口幂等性的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592471A (zh) * | 2021-07-29 | 2021-11-02 | 中国人民银行清算总中心 | 支付交易应用系统及方法 |
CN113610537A (zh) * | 2021-08-05 | 2021-11-05 | 北京云从科技有限公司 | 请求执行方法、服务器、计算机设备和存储介质 |
CN114095575A (zh) * | 2021-09-27 | 2022-02-25 | 上海信宝博通电子商务有限公司 | 数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112835916A (zh) | 基于api接口的业务处理方法、设备及计算机可读存储介质 | |
CN109684285B (zh) | 一种用户态网络文件系统文件锁方法、装置及设备 | |
WO2017076193A1 (zh) | 一种处理客户端请求的方法和装置 | |
CN110213276B (zh) | 一种微服务架构下的授权验证方法、服务器、终端及介质 | |
CN109951546B (zh) | 基于智能合约的事务请求处理方法、装置、设备和介质 | |
TWI776030B (zh) | 基於區塊鏈的交易處理方法及裝置、電子設備 | |
US20200174818A1 (en) | Virtual machine management | |
CN110334126B (zh) | 基于Spring MVC的定时任务处理方法、装置和计算机设备 | |
EP4207688A1 (en) | Asynchronous bookkeeping method and apparatus for blockchain, medium, and electronic device | |
CN111258723B (zh) | 分布式系统的事务处理方法、装置、系统、介质及设备 | |
CN112688983A (zh) | 代理权限管理装置、终端设备及存储介质 | |
US11444785B2 (en) | Establishment of trusted communication with container-based services | |
CN113569285A (zh) | 身份认证与鉴权的方法、装置、系统、设备及存储介质 | |
CN112597039A (zh) | 虚拟机访问方法、系统、设备及计算机可读存储介质 | |
CN108234122B (zh) | 令牌校验方法和装置 | |
CN111400760A (zh) | web应用访问数据库的方法、装置、服务器和存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
US11431795B2 (en) | Method, apparatus and storage medium for resource configuration | |
CN107085681B (zh) | 鲁棒的计算设备标识框架 | |
CN110311789B (zh) | 数据安全传输方法及装置 | |
US8719822B2 (en) | Method and system for storing and referencing partial complex resources using object identifiers in a printing system | |
WO2021089975A1 (en) | Generating a delta update | |
CN111491298A (zh) | 基于emqtt服务器访问的认证方法及系统、服务器、客户端 | |
US10936431B2 (en) | Method, device and computer readable medium for restoring files | |
CN114257606B (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 |