基于幂等号校验的业务处理方法及装置制造方法及图纸

技术编号:13306800 阅读:48 留言:0更新日期:2016-07-10 02:05
本申请提供了一种基于幂等号校验的业务处理方法及装置,所述方法包括:响应于调用方发起的幂等号获取请求,参考随机确定的目标数据库和当前业务类型生成幂等号;将所述幂等号返回给所述调用方;响应于调用方发起的业务处理请求,所述业务处理请求包括所述幂等号,对所述幂等号进行校验;如果校验不通过,则通知所述调用方重新发起幂等号获取请求;响应于调用方重新发起的幂等号获取请求,依据与所述目标数据库互为主备的数据库生成幂等号。本申请实施例,可以保证幂等号校验的可实施性和高可用性,也保证了业务处理能够持续可用地进行。

【技术实现步骤摘要】

本申请涉及互联网数据处理
,特别涉及一种基于幂等号校验的业务处理方法及装置
技术介绍
SOA(Service-OrientedArchitecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过服务之间的定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用统一和通用的方式进行交互。在SOA模式的交换系统中,应用超时重发和网络重试是两种通用的超时恢复策略。这样的处理逻辑就导致了服务提供方有可能收到调用方发送的两次相同的请求,对于有些业务,服务提供方是不能处理两次的,而对于已经处理成功的请求,服务提供方不能重复处理,因此需要做幂等控制。现有技术中有一种基于幂等号校验的业务处理方法,幂等号校验的目的是校验对应的业务请求是否已经被处理过。具体在进行幂等号校验的时候,由调用方生成幂等号并将包含幂等号的业务处理请求发送给服务提供方,而服务提供方一般都会采用多个数据库来存储业务数据,因此,服务提供方会将幂等号按照分库规则存入对应的数据库中,如果能够存储成功则说明包含该幂等号的业务处理请求还未处理过,如果存储不成功则说明包含该幂等号的业务处理请求已经被处理过。其中的分库规则保证同一个幂等号一定插入同一个数据库中。但是专利技术人在研究过程中发现,假设将幂等号插入数据库时该数据库出现了宕机的现象,那么落到该数据库的幂等号校验过程就会失败,从而导致对相应的业务请求也会处理失败。
技术实现思路
本申请所要解决的技术问题是提供一种基于幂等号校验的业务处理方法,用以尽量避免现有技术中如果出现数据库宕机就会导致幂等号校验失败以及相应的业务处理失败的现象。本申请还提供了一种基于幂等号校验的业务处理装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种基于幂等号校验的业务处理方法,该方法应用于服务提供方,所述服务提供方的多个数据库两两划分为互为主备的数据库;包括:响应于调用方发起的幂等号获取请求,依据随机确定的目标数据库生成幂等号;将所述幂等号返回给所述调用方;响应于调用方发起的业务处理请求,所述业务处理请求包括所述幂等号,对所述幂等号进行校验;如果校验不通过,则通知所述调用方重新发起幂等号获取请求;响应于调用方重新发起的幂等号获取请求,依据与所述目标数据库互为主备的数据库生成幂等号。可选的,所述对所述幂等号进行校验,包括:从所述幂等号中提取出目标数据库的标识以确定目标数据库;按照所述目标数据库中的数据保存顺序,将所述幂等号顺序保存至所述目标数据库中。可选的,所述依据随机确定的目标数据库生成幂等号,包括:从所述服务提供方的多个数据库中随机选取当前业务对应的目标数据库;获取当前时间信息和幂等号的序列号;将所述目标数据库的标识、当前业务类型的业务码、时间信息和序列号组合为幂等号。可选的,还包括:如果校验通过,则依据所述当前业务类型执行对应的业务。本申请公开了一种基于幂等号校验的业务处理装置,所述装置集成于服务提供方上,所述服务提供方的多个数据库两两划分为互为主备的数据库;包括:第一幂等号生成模块,用于响应于调用方发起的幂等号获取请求,依据随机确定的目标数据库生成幂等号;返回模块,用于将所述幂等号返回给所述调用方;校验模块,用于响应于调用方发起的业务处理请求,所述业务处理请求包括所述幂等号,对所述幂等号进行校验;通知模块,用于在所述校验模块的结果为校验不通过的情况下,通知所述调用方重新发起幂等号获取请求;第二幂等号生成模块,用于依据与所述目标数据库互为主备的数据库生成幂等号。可选的,所述校验模块包括:提取标识模块,用于从所述幂等号中提取出目标数据库的标识以确定目标数据库;保存模块,用于按照所述目标数据库中的数据保存顺序,将所述幂等号顺序保存至所述目标数据库中。可选的,第一幂等号生成模块包括:确定子模块,用于从所述服务提供方的多个数据库中随机选取当前业务对应的目标数据库;获取子模块,用于获取当前时间信息和幂等号的序列号;组合子模块,用于将所述目标数据库的标识、当前业务类型的业务码、时间信息和序列号组合为幂等号。可选的,还包括:执行业务模块,用于在所述校验模块的结果为校验不通过的情况下,依据所述当前业务类型执行对应的业务。与现有技术相比,本申请包括以下优点:在本申请实施例中,将服务提供方存储业务数据的数据库划分为两两互为主备的数据库,调用方在接收到用户触发的业务请求时,不再自己生成幂等号,而是将生成幂等号的请求发送给服务提供方由服务提供方生成幂等号并返回给调用方,调用方再基于幂等号发起真正的业务处理请求,从而触发服务提供方对幂等号的校验以及后续业务处理过程。采用本申请实施例,即便服务提供方的数据库在进行幂等号校验的时候出现了数据库宕机的情况下,服务提供方也会通知调用方重新发起生成幂等号的请求,从而采用与宕机数据库互为主备的数据库重新生成幂等号并进行校验,从而保证了幂等号校验的可实施性和高可用性,也保证了业务处理能够持续可用地进行。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的基于幂等号校验的业务处理方法实施例的流程图;图2是本申请在实际应用中的一个应用场景架构图;图3是本申请的一种基于幂等号校验的业务处理装置实施例的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包本文档来自技高网
...

【技术保护点】
一种基于幂等号校验的业务处理方法,其特征在于,应用于服务提供方,所述服务提供方的多个数据库两两划分为互为主备的数据库;该方法包括:响应于调用方发起的幂等号获取请求,依据随机确定的目标数据库生成幂等号;将所述幂等号返回给所述调用方;响应于调用方发起的业务处理请求,所述业务处理请求包括所述幂等号,对所述幂等号进行校验;如果校验不通过,则通知所述调用方重新发起幂等号获取请求;响应于调用方重新发起的幂等号获取请求,依据与所述目标数据库互为主备的数据库生成幂等号。

【技术特征摘要】
1.一种基于幂等号校验的业务处理方法,其特征在于,应用于服务
提供方,所述服务提供方的多个数据库两两划分为互为主备的数据库;
该方法包括:
响应于调用方发起的幂等号获取请求,依据随机确定的目标数据库生
成幂等号;
将所述幂等号返回给所述调用方;
响应于调用方发起的业务处理请求,所述业务处理请求包括所述幂等
号,对所述幂等号进行校验;
如果校验不通过,则通知所述调用方重新发起幂等号获取请求;
响应于调用方重新发起的幂等号获取请求,依据与所述目标数据库互
为主备的数据库生成幂等号。
2.根据权利要求1所述的方法,其特征在于,所述对所述幂等号进
行校验,包括:
从所述幂等号中提取出目标数据库的标识以确定目标数据库;
按照所述目标数据库中的数据保存顺序,将所述幂等号顺序保存至所
述目标数据库中。
3.根据权利要求1所述的方法,其特征在于,所述依据随机确定的
目标数据库生成幂等号,包括:
从所述服务提供方的多个数据库中随机选取当前业务对应的目标数
据库;
获取当前时间信息和幂等号的序列号;
将所述目标数据库的标识、当前业务类型的业务码、时间信息和序列
号组合为幂等号。
4.根据权利要求1所述的方法,其特征在于,还包括:
如果校验通过,则依据所述当前业务类型执行对应的业务。
5.一种基于幂等号校验的业务处理装置,其特征在于,所述装置集
成于服务提供方上,所述服务提供...

【专利技术属性】
技术研发人员:陈明
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1