System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机数据处理领域,尤其涉及一种基于高并发的接口幂等实现方法、装置、电子设备及可读存储介质。
技术介绍
1、接口幂等是指无论调用接口的次数,结果都是一致的,即使接口被多次调用,对系统的状态或数据不会产生任何变化。
2、当前常见的接口幂等通常是根据分布式锁或互斥锁实现接口的幂等控制,使得高并发情况下,无法保证接口的稳定性,容易出现请求失败的情况。
技术实现思路
1、本专利技术提供一种基于高并发的接口幂等实现方法、装置、电子设备及可读存储介质,其目的在于保证高并发情况下请求结果的一致性及稳定性。
2、为实现上述目的,本专利技术提供的一种基于高并发的接口幂等实现方法,所述方法包括:
3、获取业务需求,并根据所述业务需求构建幂等接口;
4、当接收到客户端发送的资源调用请求时,判断所述幂等接口是否正在处理其余资源调用请求;
5、若所述幂等接口正在处理其余资源调用请求,则将所述资源调用请求存放至预设消息队列中,直至所述其余资源调用请求处理完毕;
6、若所述幂等接口没有处理其余资源调用请求,则根据所述资源调用请求构建幂等对象,并利用所述幂等对象检索预设的幂等表中是否含有所述资源调用请求对应的请求结果;
7、若所述幂等表中含有所述资源调用请求对应的请求结果,则将所述请求结果返回所述客户端;
8、若所述幂等表中没有所述资源调用请求对应的请求结果,根据所述资源调用请求获取请求结果,并将所述请求
9、可选地,所述判断所述幂等接口是否正在处理其余资源调用请求,包括:
10、利用所述幂等接口中的同步对象构造方法,根据所述资源调用请求构造同步对象;
11、根据所述同步对象检索所述幂等接口对应系统的请求处理列表;
12、将所述资源调用请求与所述请求处理列表中的请求逐一进行比对,判断所述请求处理列表中是否存在与所述资源调用请求相同的请求;
13、当所述请求处理列表中存在与所述资源调用请求相同的请求时,判定所述幂等接口正在处理其余资源调用请求;
14、当所述请求处理列表中不存在与所述资源调用请求相同的请求时,判定所述幂等接口没有处理其余资源调用请求。
15、可选地,所述根据所述资源调用请求构建幂等对象,包括:
16、提取所述资源调用请求中的请求参数;
17、根据预设的接口幂等软件包中的幂等对象构建规则及所述请求参数,生成唯一标识符;
18、将所述唯一标识符与所述资源调用请求进行关联,得到幂等对象。
19、可选地,所述利用所述幂等对象检索预设的幂等表中是否含有所述资源调用请求对应的请求数据,包括:
20、将所述资源调用请求的幂等对象与预设的幂等表中的幂等对象逐一进行比对,判断所述幂等表中是否存在与所述资源调用请求的幂等对象相同的请求结果;
21、当所述幂等表中存在与所述资源调用请求的幂等对象相同的请求结果时,判定所述幂等表中含有所述资源调用请求对应的请求结果;
22、当所述幂等表中不存在与所述资源调用请求的幂等对象相同的请求结果时,判定所述幂等表中没有所述资源调用请求对应的请求结果。
23、可选地,所述根据所述业务需求构建幂等接口,包括:
24、根据所述业务需求,选取待幂等系统;
25、利用预设的接口幂等软件包将预设注解加入所述待幂等系统的接口中,得到幂等接口。
26、可选地,所述建幂等接口还包括:同步对象构造方法及幂等对象构造方法。
27、可选地,所述将所述请求结果返回所述客户端之后,还包括:
28、将所述资源调用请求的幂等对象与所述资源调用请求的请求结果进行关联;
29、将关联后的幂等对象与请求结果存储至预设得到幂等表中。
30、为了解决上述问题,本专利技术还提供一种基于高并发的接口幂等实现装置,所述装置包括:
31、幂等接口构建模块,用于获取业务需求,并根据所述业务需求构建幂等接口;
32、幂等接口判断模块,用于当接收到客户端发送的资源调用请求时,判断所述幂等接口是否正在处理其余资源调用请求,若所述幂等接口正在处理其余资源调用请求,则将所述资源调用请求存放至预设消息队列中,直至所述其余资源调用请求处理完毕,若所述幂等接口没有处理其余资源调用请求,则根据所述资源调用请求构建幂等对象,并利用所述幂等对象检索预设的幂等表中是否含有所述资源调用请求对应的请求结果;
33、幂等表检索模块,用于若所述幂等表中含有所述资源调用请求对应的请求结果,则将所述请求结果返回所述客户端,若所述幂等表中没有所述资源调用请求对应的请求结果,根据所述资源调用请求获取请求结果,并将所述请求结果返回所述客户端。
34、为了解决上述问题,本专利技术还提供一种电子设备,所述电子设备包括:
35、存储器,存储至少一个计算机程序;及
36、处理器,执行所述存储器中存储的计算机程序以实现上述所述的基于高并发的接口幂等实现方法。
37、为了解决上述问题,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的基于高并发的接口幂等实现方法。
38、本专利技术实施例通过判断幂等接口是否正在处理其余资源调用请求,及利用幂等对象检索预设的幂等表中是否含有资源调用请求对应的请求结果实现幂等接口的多实例并发控制,当多个需要幂等的请求访问所述幂等接口时,通过并发控制保证只有第一个请求真正执行业务逻辑,其他请求会等待第一个请求执行完;第一个请求执行完成后,会把结果数据记录到所述幂等表中;其他请求在第一个请求执行完成后,会自动从幂等表中查询对应请求结果返回客户端,保证了高并发情况下请求结果的一致性及稳定性。因此,本专利技术提供的一种基于高并发的接口幂等实现方法、装置、设备及存储介质,能够保证高并发情况下请求结果的一致性及稳定性。
本文档来自技高网...【技术保护点】
1.一种基于高并发的接口幂等实现方法,其特征在于,所述方法包括:
2.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述判断所述幂等接口是否正在处理其余资源调用请求,包括:
3.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述根据所述资源调用请求构建幂等对象,包括:
4.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述利用所述幂等对象检索预设的幂等表中是否含有所述资源调用请求对应的请求数据,包括:
5.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述根据所述业务需求构建幂等接口,包括:
6.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述建幂等接口还包括:同步对象构造方法及幂等对象构造方法。
7.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述将所述请求结果返回所述客户端之后,还包括:
8.一种基于高并发的接口幂等实现装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的基于高并发的接口幂等实现方法。
...【技术特征摘要】
1.一种基于高并发的接口幂等实现方法,其特征在于,所述方法包括:
2.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述判断所述幂等接口是否正在处理其余资源调用请求,包括:
3.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述根据所述资源调用请求构建幂等对象,包括:
4.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述利用所述幂等对象检索预设的幂等表中是否含有所述资源调用请求对应的请求数据,包括:
5.如权利要求1所述的基于高并发的接口幂等实现方法,其特征在于,所述根据所述业务需求构建...
【专利技术属性】
技术研发人员:张宝浩,刘海东,
申请(专利权)人:招商局金融科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。