业务处理方法、系统、机房、架构及电子设备与流程

文档序号:19155025发布日期:2019-11-16 00:37阅读:146来源:国知局
业务处理方法、系统、机房、架构及电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种业务处理方法、系统、机房、架构及电子设备。



背景技术:

微服务架构,因具备将单个应用拆分为多个微服务进行开发的能力而被广泛应用,其中,微服务是围绕业务功能构建的,不同微服务可以用不同的编程语言编写,并且不同微服务能够被独立部署和扩展,集中管理很少。在微服务架构中,常用承载有业务组件的容器(可以称为业务组件容器)来实现微服务。在一些互联网企业采用的微服务架构中,为了处理跨国或跨地区的远程业务,除了在企业的中心机房集中部署业务组件容器,还存在在异地机房部署部分业务组件容器的情况。

在异地机房部署业务组件容器,虽然可以适配当地的业务运行环境,提供独立的服务,但核心的数据和服务仍需要从中心机房获取。这使得异地机房中部署的业务组件容器在处理业务时需要依赖较多的远程调用,较多的远程调用势必会导致处理业务时的耗时增加,因此,需要改进。



技术实现要素:

本申请实施例提供了一种业务处理方法、系统、机房、架构及电子设备,以减少处理业务时的耗时。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,提出了一种业务处理方法,应用于第一机房,所述方法包括:

通过一体化处理模块,监听并拦截来自所述第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;

在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

第二方面,提出了一种业务处理系统,应用于第一机房,所述系统包括:

一体化处理模块,用于监听并拦截来自所述第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,以及基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

异步调度模块,用于在满足第二预设触发条件时,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

第三方面,提出了第一机房,包括:本地业务组件容器、异步调度模块和至少一个近端服务,其中,所述本地业务组件容器中承载有本地业务组件和一体化处理模块;

所述一体化处理模块,用于监听并拦截来自所述本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述远程服务对应的近端服务对所述业务流程进行处理,以及基于所述远程服务对应的近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

所述异步调度模块,用于在满足第二预设触发条件时,调用所述远程服务对所述业务流程进行处理;

所述远程服务对应的近端服务,用于基于接收到的所述远程服务返回的业务流程处理结果,更新所述业务流程的最终处理状态。

第四方面,提出了一种业务处理架构,包括第一机房和第二机房,其中,所述第一机房中部署有本地业务组件容器、异步调度模块和至少一个近端服务,所述本地业务组件容器中承载有本地业务组件和一体化处理模块;所述第二机房中部署有所述至少一个近端服务器对应的远程服务;

所述一体化处理模块,用于监听并拦截来自所述本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用所述远程服务对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述远程服务对应的近端服务对所述业务流程进行处理,以及基于所述远程服务对应的近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

所述异步调度模块,用于在满足第二预设触发条件时调用所述远程服务;

所述远程服务,用于响应所述异步调度模块的调用,对所述业务流程进行处理,并向所述远程服务对应的近端服务返回处理结果;

所述远程服务对应的近端服务,用于基于接收到的所述远程服务返回的业务流程处理结果,更新所述业务流程的最终处理状态。

第五方面,提出了一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

通过一体化处理模块,监听并拦截来自所述第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;

在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

第六方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

通过一体化处理模块,监听并拦截来自所述第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;

在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于第一机房中部署有第二机房中的远程服务对应的近端服务,因此可以将原来的远程调用转化为第一机房内的本地调用或就近调用,减少了远程调用服务的次数,进而可以在降低业务处理过程的耗时的同时提升业务被成功处理的概率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是相关技术中的业务处理架构示意图。

图2是服务调用请求数量关于时间的变化曲线示意图。

图3是本说明书实施例提供的业务处理架构示意图之一。

图4是本说明书实施例提供的业务处理架构示意图之二。

图5是本说明书实施例提供的业务处理架构的交互时序示意图。

图6是本说明书实施例提供的一种业务处理方法的流程示意图。

图7是本说明书实施例提供的业务处理方法中的同步处理流程的示意图。

图8是本说明书实施例提供的业务处理方法中的异步处理流程的示意图。

图9是本说明书实施例提供的顺序流程的示意图。

图10是本说明书实施例提供的并行流程的示意图。

图11是本说明书实施例提供的分支流程的示意图。

图12是本说明书实施例提供的业务处理架构示意图之三。

图13是本说明书实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图1所示,在相关技术中,第一机房1中部署有本地业务组件容器11,本地业务组件容器11中承载有本地业务组件,本地业务组件容器11承载的本地业务组件所依赖的多个远程服务(如远程服务a、远程服务b和远程服务c)集中部署在第二机房2中。其中,第一机房1即是服务提供方(如企业,具体如提供第三方支付服务的企业)为了实现跨国或跨地区业务而在异地部署的机房,第二机房2为服务提供方集中部署的中心机房,第二机房2用于存储核心数据以及提供核心服务。第一机房1和第二机房2通过部署在各自机房内的网络设备12(如第一机房1内的第一防火墙121和第一交换机122,以及第二机房2内的第二防火墙211和第二交换机212)经由www网络连接,或通过企业专线连接。

在相关技术的这种部署架构下,如果第一机房1中的本地业务组件在处理业务时,需要完成业务流程01、业务流程02和业务流程03,则需要多次调用第二机房2中部署的远程服务,如需要分别通过步骤①、步骤②、步骤③依次调用第二机房2内的远程服务a、远程服务b和远程服务c,这使得完成上述三个业务流程的耗时是完成步骤①、步骤②和步骤③的耗时的总和(可以表示为①+②+③)。第一机房1中的本地业务组件在完成这三个业务流程的处理后,统一通过第一机房1向服务调用方返回业务处理结果。

不难看出,相关技术中的业务处理架构,需要较多的远程调用,而较多的远程调用势必会导致业务处理过程的耗时增加。并且,较多的远程调用还会因网络故障导致业务处理失败的概率增加。此外,业务处理过程的耗时增加,还会导致第一机房1的服务请求容量达不到要求,如图2所示,导致实际服务请求的数量远高于设计容量水平。

为了解决上述问题中的至少一个,本说明书实施例提供一种业务处理方法、系统、机房及架构。下面先结合图3至图4对本说明书实施例提供的业务处理架构进行说明。

既然多次远程调用会导致业务处理过程的耗时增加,那就要想办法减少远程调用的次数,申请人通过在第一机房1中对需要调用的远程服务进行影子部署,得到远程服务在第一机房1中的近端服务,这样一来,可以将原来的远程调用转化为第一机房1内的本地调用或就近调用,从而可以降低业务处理过程的耗时,并提升业务被成功处理的概率。

如图3所示,本说明书实施例提供的业务处理架构,包括:第一机房1和第二机房2。第二机房1中部署有至少一个远程服务,如远程服务a、远程服务b和远程服务c。第一机房1中部署有本地业务组件容器11和至少一个近端服务,如近端服务a'、近端服务b'和近端服务c',其中,近端服务a'、近端服务b'和近端服务c'分别是对第二机房2中部署的远程服务a、远程服务b和远程服务c执行影子部署后得到的服务。在图3所示的架构中,近端服务a'、近端服务b'和近端服务c'可以分别基于部署在第一机房1中的本地数据向本地业务组件提供服务。

在图3所示的业务处理架构下,当第一机房1中的本地业务组件需要完成业务流程01、业务流程02和业务流程03时,可以分别通过步骤①、步骤②和步骤③调用近端服务a'、近端服务b'和近端服务c'来实现;此外,近端服务a'、近端服务b'和近端服务c'还可以将调用自身的服务调用请求保存至第四本地数据库15中,并分别在各自对应的本地数据库中记录处理相应业务流程的日志,如近端服务a'可在第一本地数据131中记录,近端服务b'可在第二本地数据132中记录,近端服务c'可在第三本地数据133中记录;后续异步调度模块16可以按照记录的日志,通过步骤①'、步骤②'和步骤③'分别异步化调用集中部署在第二机房2中的相应远程服务,实现相应业务流程的最终处理,将业务的执行状态推进至最终的成功状态。

在图3的基础上,如图4所示,本说明书实施例提供了一种更加详细的业务处理架构。

如图4所示,本说明书实施例提供的业务处理架构,包括:第一机房1和第二机房2。第二机房1中部署有待处理请求队列和至少一个远程服务,如部署有远程服务a、远程服务b和远程服务c。第一机房1中部署有本地业务组件容器11、一体化处理模块17、异步调度模块16和至少一个近端服务,如部署有近端服务a'、近端服务b'和近端服务c',其中,近端服务a'、近端服务b'和近端服务c'分别是对第二机房2中部署的远程服务a、远程服务b和远程服务c执行影子部署后得到的服务。在图3所示的架构中,一体化处理模块17封装在本地业务组件容器11中。当然,与异步调度模块16类似,一体化处理模块17也可以不封装在本地业务组件容器11中,而是设置在本地业务组件容器11之外。

图5示出了图4所示的业务处理架构中各执行主体在处理业务时的交互时序示意图。下面结合图5对图4所示的业务处理架构中各执行主体处理业务时的交互过程进行说明。如图5所示,该交互过程可以包括:

步骤501、服务调用方3向第一机房1中的本地业务组件110(由本地业务组件容器11承载,图5中未示出)发送用于请求处理目标业务的业务处理请求。

步骤502、第一机房1中的本地业务组件110对所述业务处理请求进行前置处理。其中,前置处理可以包括:对接收到的业务处理请求进行网络协议转换及反序列化,以及如有必要,对接收到的业务处理请求进行解密等处理。

步骤503、本地业务组件110对所述业务处理请求进行内部处理,然后发送至少一个服务调用请求,所述服务调用请求用于请求调用远程服务20对所述目标业务中的业务流程进行处理。其中,内部处理可以包括:确定目标业务中的业务流程,以及为实现该业务流程需要调用的远程服务20等。

步骤504、第一机房1中的一体化处理模块17监听并拦截来自本地业务组件110的至少一个服务调用请求。

步骤505、在所述目标业务满足第一预设触发条件时,一体化处理模块17将所述服务调用请求发送至第一机房内部署的远程服务20对应的近端服务13,以调用所述近端服务13对目标业务的业务流程进行处理。

步骤506、一体化处理模块17将所述服务调用请求保存至第一机房1中的第四本地数据库中(图5中未示出),以供异步调度模块16调用。

步骤507、近端服务13响应接收到的服务调用请求,对该服务调用请求所述请求处理的业务流程进行处理。

步骤508、近端服务13向一体化处理模块17返回针对目标业务的业务流程的处理结果。

步骤509、一体化处理模块17基于近端服务13返回的处理结果,向服务调用方3反馈目标业务的处理结果。

步骤510、在满足第二预设触发条件时,异步调度模块16在给所述服务调用请求设置新的标识之后发送给远程服务20,以调用所述远程服务20对该服务调用请求所述请求处理的业务流程进行处理。

步骤511、远程服务20响应于接收到的服务调用请求,对所述业务流程进行处理。

步骤512、远程服务20向近端服务13返回成功处理所述业务流程的结果,使得近端服务13将所述业务流程的最终处理状态推进至成功。

其中,第一预设触发条件和第二预设触发条件的具体内容将在下文中介绍,此处暂不说明。

通过图5所示的交互过程处理目标业务时,由于第一机房1中部署有第二机房2中的远程服务对应的近端服务,因此可以将原来的远程调用转化为第一机房1内的本地调用或就近调用,减少了远程调用的次数,进而可以在降低业务处理过程的耗的同时提升业务被成功处理的概率。

在图4所示的业务处理架构的基础上,如图6所示,本说明书实施例提供了一种业务处理方法,可以应用于图4所示的第一机房1中,该方法可以包括:

步骤602、通过一体化处理模块,监听并拦截来自所述第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理。

如图4所示,通过一体化处理模块17,监听并拦截来自所述第一机房1中的本地业务组件的至少一个服务调用请求。

其中,目标业务即为本地业务组件接收到的业务处理请求所请求处理的业务。以本地业务组件容器11承载的业务组件为支付服务支持组件为例,则目标业务可以是用户向商户支付消费金额的支付业务。

可选地,在下述步骤604之前,图6所示的方法还可以包括:在所述第一机房中进行所述远程服务的影子部署,得到所述远程服务在所述第一机房内的近端服务。

步骤604、在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果。

如图4所示,通过一体化处理模块17,将拦截的服务调用请求发送至影子部署的近端服务13,以调用近端服务13对所述业务流程进行处理,并基于近端服务13返回的处理结果,向服务调用方(用户)4反馈所述目标业务的处理结果。

其中,第一预设触发条件包括但不限于下列条件中的一种或多种:所述目标业务的类型为预设类型,所述服务调用方属于预设类型,所述目标业务的产生时刻在预设时间范围内,以及所述目标业务被处理的累计次数小于预设次数。具体的,以目标业务为上文中的支付业务为例,第一预设触发条件可以包括下列条件中的一个或多个:目标业务的类型是否为预设类型、支付金额是否在预设金额范围内、用户是否为预设类型的用户、支付时间是否在预设时间范围内以及目标业务被处理的累计次数是否小于预设次数,等等。

可选地,在一个例子中,在执行下述步骤606之前,图6所示的方法还可以包括:通过所述一体化处理模块,在所述第一机房本地保存所述至少一个服务调用请求,以供所述异步调度模块调用。

可选地,在另一个例子中,图6所示的方法还可以包括:在所述目标业务不满足所述第一预设触发条件,和/或所述第一机房内没有部署所述远程服务对应的近端服务时,将所述服务调用请求发送至所述远程服务,以调用所述远程服务对所述目标业务中的业务流程进行处理。

进一步地,步骤604具体可包括:在所述目标业务满足第一预设触发条件时,通过一体化处理模块,按照第一预设处理流程对所述目标业务的业务流程中的第一子业务进行处理。其中,第一子业务是能够通过调用相应的近端服务成功处理的子业务。

同样以本地业务组件为支付服务支持组件,目标业务为用户向商户支付消费金额的支付业务为例,第一子业务可以是从用户的本地账户进行预扣款的业务。这样一来,如果用户的本地账户的可用额度(如用户本地账户开通的消费信贷的可用额度)大于用户向商户支付的消费金额,则可以在从本地账户扣款成功之后,向用户返回成功处理目标业务的处理结果。

可以理解,一体化处理模块17在监听并拦截服务调用请求之后,可以基于所述目标业务是否满足第一预设触发条件,以及所述第一机房内部署有所述远程服务对应的近端服务,确定调用近端服务还是远程服务对目标业务中的业务流程进行处理,确定之后可以同步调用相应的服务对目标业务中的业务流程进行处理。

对于第一预设处理流程,可以根据本地业务组件所支持的业务以及目标业务的不同预先进行设计,本说明书对此不做特别限定。

下面结合图7所示的例子,对通过一体化处理模块同步处理目标业务的过程以及第一预设处理流程进行举例说明。

如图7所示,目标业务的同步处理过程可以包括业务入口71、预处理72、业务处理73和系统处理74这四部分。

业务入口71这一部分可以包括输入步骤711和输出步骤712。其中,输入步骤711包括读取目标业务的处理请求,输出步骤712包括输出目标业务的处理结果。

预处理72这一部分可以包括前置处理步骤721。前置处理步骤721具体可以包括对读取的目标业务的处理请求进行网络协议转换及反序列化,以及如有必要,对读取的目标业务的处理请求进行解密等处理。

业务处理73这一步分可以包括输入处理流程(inchain)737和输出处理流程(outchain)734。其中,输入处理流程737和输出处理流程734即可看作是上文中述及的第一预设处理流程。

具体的,如图7所示,输入处理流程737可以包括依据预设校验规则731对目标业务的业务流程中的第一子业务进行规则校验和/或获取所述第一子业务的相关参数,以及依据预设业务处理逻辑732对所述第一子业务进行处理等。可以理解,如果业务入口71中的输入711部分读取的业务流程包括n个第一子业务,则可能需要执行n次的业务处理,且不同第一子业务对应的业务处理逻辑732可能不同。

具体的,如图7所示,输出处理流程734可以包括基于预设模版(如模版1至模版n)对所述目标业务的业务流程中第一子业务的处理结果进行组装,并输出,且针对不同的第一子业务采用的模版可以不同。

可选地,业务处理部分73还可以包括日志记录736和异步通知735。其中异步通知735可以是向异步调度模块16发送目标业务的业务流程中的第一子业务处理结束的通知,以便于异步调度模块16开始处理目标业务的业务流程中的第二子业务。其中,第二子业务是不能通过调用相应的近端服务成功处理的子业务。

系统处理74这一步分可以包括幂等处理步骤741、内部业务处理步骤742、缓冲记录步骤747和超时处理步骤745,等等。其中,超时处理步骤745包括根据预先为处理目标业务设置的预设超时时间,判断目标业务的处理过程是否超时,如果超时,则结束对目标业务的处理;幂等处理步骤741、内部业务处理步骤742和缓冲记录步骤747所要实现的内容请参照相关技术,本说明书不做赘述。

可以理解,通过图7所示的同步处理过程,可以使用户在发起目标业务的处理请求的时刻起的预设超时时间内,收到目标业务被成功处理的结果,也即可以使用户在发起目标业务的处理请求之后,近乎同步地收到目标业务被成功处理的结果,因此可以将该过程称为目标业务的同步处理过程。

可选地,在步骤604中,通过所述一体化处理模块,基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果,可以包括:

通过所述一体化处理模块,基于所述近端服务返回的处理结果以及预设模版,向服务调用方反馈所述目标业务的处理结果。

步骤606、在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

其中,所述第二预设触发条件包括但不限于:到达预设定时时间和接收到预设指令中的至少一种。当然,也可以在执行完步骤604之后,立即通过异步调度模块,调用所述远程服务对所述业务流程进行处理,本说明书实施例对此不做特别限制。

在第一个例子中,步骤606具体可包括:在满足第二预设触发条件时,通过所述异步调度模块,给所述服务调用请求设置新的标识;通过所述异步调度模块,将具有新的标识的所述服务调用请求发送至所述远程服务,以调用所述远程服务对所述目标业务中的业务流程进行处理。也即,如图3所示,通过异步调度模块16可以分别向远程服务a、远程服务b和远程服务c发送相应的服务调用请求,以调用相应的远程服务对目标业务中的相应业务流程进行处理。

在第二个例子中,步骤606具体可包括:在满足第二预设触发条件时,通过所述异步调度模块,给所述至少一个服务调用请求设置新的标识;通过所述异步调度模块,对具有新的标识的所述至少一个服务调用请求进行组合,得到服务调用请求集合;通过所述异步调度模块,将所述服务调用请求集合发送至第二机房中的待处理请求队列,以调用所述远程服务对所述业务流程进行处理。

如图4所示,在上述第二个例子中,所述第二机房2为远程服务所在的机房;其中,所述远程服务,用于监听所述待处理请求队列21以获取所述服务调用请求集合,对所述服务调用请求集合进行拆解得到需要自身处理的服务调用请求,并在对需要自身处理的服务调用请求进行处理后,向所述远程服务在第一机房内的近端服务返回处理结果。

可以理解,在上述第二个例子中,由于可以通过异步调度模块将所述至少一个服务调用请求组合后,一次性发送至第二机房中的待处理请求队列,而不是逐一地发送至对应的远程服务,也即将对第二机房中的远程服务的调用合并成一次,因此可以进一步减少跨机房调用的网络耗时,从而提升业务处理效率。

更为具体的,在步骤606中,在满足第二预设触发条件时,可通过一体化处理模块,按照第二预设处理流程对所述目标业务的业务流程中的第二子业务进行处理。其中,第二子业务是不能通过调用相应的近端服务成功处理的子业务。

同样以本地业务组件为支付服务支持组件,目标业务为用户向商户支付消费金额的支付业务为例,第一子业务可以是从用户的本地账户进行预扣款的业务,而第二子业务可以是从用户的网银账户进行最终扣款的业务。如此一来,在满足第一预设触发条件时,则可以通过异步调度模块,按照第二预设处理流程从用户的网银账户进行最终扣款。

可选地,异步调度模块16,可用于在对所述目标业务的业务流程中的第二子业务处理失败之后,再次在满足第二预设触发条件时,按照所述第二预设处理流程对所述目标业务的业务流程中的第二子业务进行处理。可选地,还可以累计处理的次数。

对于第二预设处理流程,可以根据本地业务组件所支持的业务以及目标业务的不同预先进行设计,本说明书对此也不做特别限定。

下面结合图8所示的例子,对异步处理目标业务的过程以及第二预设处理流程进行说明。

如图8所示,目标业务中的业务流程的异步处理过程可以包括业务入口81、业务处理82和系统处理83这三部分。

业务入口81这一部分可以包括:定时触发步骤812和/或手动触发步骤811。

其中,定时触发步骤812包括在到达预设定时时间时,触发对目标业务的业务流程中的第二子业务进行异步处理的过程。

其中,手动触发步骤811包括在接收到用户手动发送的处理指定第二子业务的指令时,如接收到用户手动指定处理多个(如100个)第二子业务的指令时,触发对目标业务的业务流程中的第二子业务进行异步处理的过程。

在定时触发步骤812之后,业务入口81这一部分还可以包括:拆分任务步骤813,该步骤包括对待处理的多个第二子业务进行拆分,分成包含的第二子业务的数量小于预设数量(如100)的多个组,以在接下来的过程以组为单位进行处理。

在拆分任务步骤813或手动触发步骤811之后,业务入口81这一部分还可以包括:第二子业务读取步骤818,该步骤包括从数据库中读取需要处理的一组第二子业务。

业务处理82这一部分可以包括:子业务处理步骤821。具体的,子业务处理步骤821可以包括如下子步骤:异步打标8211、子业务处理8212和处理结果判断8213。

异步打标8211包括基于预设打标模版822,对读取的第二子业务设置新的标识。可以理解,对第二子业务进行异步打标,可以使外部服务将第二子业务当做一个全新的业务进行处理,这样可以提高成功处理第二子业务的概率。

子业务处理8212包括调用相应的远程服务对具有新的标识的第二子业务进行处理。

处理结果判断8213包括基于预设校验规则823判断对具有新的标识的第二子业务的处理是否成功,并转入步骤831和/或步骤832。

系统处理83这一部分可以包括:步骤831和/或步骤832。其中,步骤831包括目标业务的异步状态同步(如在目标业务的业务流程中的第二子业务处理成功后,将所述目标业务的业务流程的处理状态设置为成功),以及第二子业务的异步处理次数记录等;步骤832包括日志记录等。

需要说明的是,在本说明书实施例中,所谓同步处理,是指一体化处理模块是否向服务调用发返回的目标业务的处理结果,强依赖于近端服务返回的所述目标业务的业务流程的处理结果,需要等到近端服务返回处理目标业务的业务流程的处理结果之后,才能向服务调用发返回目标业务的处理结果,如果未等到,则一直处于等待状态,直到到达预定的超时时间。而异步处理则相反,一体化处理模块是否向服务调用发返回的目标业务的处理结果,并不强依赖于远程服务返回的所述目标业务的业务流程的处理结果,远程服务是否返回的所述目标业务的业务流程的处理结果并不重要,无论返回与否,一体化处理模块都能向服务调用发返回的目标业务的处理结果。

图6所示的实施例提供的一种业务处理方法,由于第一机房中部署有第二机房中的远程服务对应的近端服务,因此可以将原来的远程调用转化为第一机房内的本地调用或就近调用,减少了远程调用服务的次数,进而可以在降低业务处理过程的耗时的同时提升业务被成功处理的概率。此外,由于可以在目标业务满足第一预设触发条件时,自动通过一体化处理模块选择调用近端服务对目标业务的业务流程进行处理,第一机房内的本地业务组件无需感知服务调用是近端的还是远程的,因此具有良好的服务自适应性。再有,在满足第二预设触发条件时,再通过异步调度模块对目标业务中的业务流程进行异步处理,因此可以实现第一机房的业务请求容量的优化。

可选地,图6所示的业务处理方法还可以包括:通过管理模块对一体化处理模块和异步调度模块进行管理。管理模块可以设置在本地业务组件容器11内,也可以设置在本地业务组件容器11外。

作为一个例子,可通过管理模块定义并向一体化处理模块中注入上述第一预设触发条件和第一预设处理流程,定义并向异步调度模块中注入第二预设处理流程。

其中,第一预设触发条件、第一预设处理流程和第二预设处理流程的具体例子可参见上文,此处不做重复描述。

需要说明的是,通过管理模块定义的第一预设处理流程和第二预设处理流程可以是顺序流程、并行流程和分支流程等流程中的任一种。图9、图10和图11分别示出了顺序流程、并行流程和分支流程的示意图。

如图9所示,顺序流程是指需要从步骤①到步骤②再到步骤③顺序执行的流程。如图10所示,并行流程是指步骤①、步骤②和步骤③可以被同时并行执行的流程。如图11所示,分支流程是并行流程和顺序流程的混合,也就是说流程能够的部分步骤(如步骤②和步骤③)可以被并行执行,部分步骤需要顺序执行(如步骤③和步骤④)。

进一步地,可通过管理模块基于预设规则编排所述第一预设处理流程和所述第二预设处理流程中的至少一个。

其中,所述预设规则包括下列规则中的至少一个:同步串行执行规则、异步并行执行规则、定时执行规则、循环执行规则、执行异常处理规则、事务操作规则、条件判断规则、外部服务调用频率控制规则、外部服务调用次数累计规则和状态保持规则,等等。可以理解,这些规则可以灵活设置,并不局限于本说明书所列举的这些。

进一步地,为了使得管理模块定义出的第一预设处理流程和第二预设处理流程尽可能的轻量化,管理模块可采用web编排描述语言(webserviceschoreographydescriptionlanguage,ws-cdl)编排所述第一预设处理流程和所述第二预设处理流程。

更进一步地,为了使本地业务组件容器11是一个轻量级的容器,管理模块也可采用ws-cdl编排图7所示的同步处理流程和图8所示的异步处理流程的脚本。下面是采用ws-cdl编排的图7所示的同步处理流程或图8所示的异步处理流程的脚本的一个示例:

上述脚本实现的流程编排是同步顺序查询反向订单(reversebuyorder)流程,具体将查询结果组装为下订单(placebuyorder)的请求,循环调用业务组件,对操作结果进行组装后返回用户客户端,最后异步调用订单确认(confirmbuyorder)操作并同步状态。可以理解,通过脚本及执行状态在不同的业务组件容器间传递(从上游业务通过打标调用下游业务服务),可以完成业务调用请求和上下文传递。

在上述业务处理方法的基础上,本说明书实施例提供了一种业务处理系统,下面进行介绍。

如图12所示,本说明书实施例提供的业务处理系统1100,可应用于第一机房1(同上文中的第一机房)中,在一种软件实施方式中,系统1100可包括:一体化处理模块17和异步调度模块16。其中,一体化处理模块17可设置在第一机房1中的本地业务组件容器11中,本地业务组件容器11中承载有本地业务组件110。

一体化处理模块17,用于监听并拦截来自所述第一机房1中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房2中部署的远程服务(可以是远程服务a、远程服务b至远程服务c中的一个)对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至第一机房内部署的所述远程服务对应的近端服务(可以是近端服务a′、近端服务b′至近端服务c′中的一个),以调用所述近端服务对所述业务流程进行处理,以及基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果。

可选地,一体化处理模块17,还用于在调用所述远程服务对所述业务流程进行处理之前,在所述第一机房本地保存所述至少一个服务调用请求,以供所述异步调度模块16调用。

异步调度模块16,用于在满足第二预设触发条件时,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

可选地,异步调度模块16,用于在满足第二预设触发条件时,给所述至少一个服务调用请求设置新的标识,对具有新的标识的所述至少一个服务调用请求进行组合,得到服务调用请求集合,将所述服务调用请求集合发送至第二机房中的待处理请求队列,以调用所述远程服务对所述业务流程进行处理。

其中,所述第二机房为所述远程服务所在的机房;所述远程服务,用于监听所述待处理请求队列以获取所述服务调用请求集合,对所述服务调用请求集合进行拆解得到需要自身处理的服务调用请求,并在对需要自身处理的服务调用请求进行处理后,向所述远程服务在第一机房内的近端服务返回处理结果。

图12所示的业务处理系统1100,在处理目标业务的过程中,可以通过一体化处理模块将原来的远程调用转化为第一机房内的本地调用或就近调用,减少了远程调用服务的次数,进而可以在降低业务处理过程的耗时的同时提升业务被成功处理的概率。此外,由于可以在目标业务满足第一预设触发条件,且第一机房中部署有远程服务对应的近端服务时,自动通过一体化处理模块选择调用近端服务对目标业务的业务流程进行处理,本地业务组件无需感知服务调用是近端的还是远程的,因此具有良好的服务自适应性。再有,在满足第二预设触发条件时,再通过异步调度模块对目标业务中的业务流程进行异步处理,因此可以实现第一机房的业务请求容量的优化。

可选地,如图12所示,本说明书实施例还提供第一机房1,包括:本地业务组件容器11、异步调度模块16和至少一个近端服务(如近端服务a′、近端服务b′至近端服务c′),其中,所述本地业务组件容器11中承载有本地业务组件110和一体化处理模块17。

所述一体化处理模块17,用于监听并拦截来自所述本地业务组件110的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房2中部署的远程服务(可以是远程服务a、远程服务b至远程服务c中的一个)对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至第一机房内部署的所述远程服务对应的近端服务(可以是近端服务a′、近端服务b′至近端服务c′中的一个),以调用所述远程服务对应的近端服务对所述业务流程进行处理,以及基于所述远程服务对应的近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果。

所述异步调度模块16,用于在满足第二预设触发条件时,调用所述远程服务对所述业务流程进行处理。

所述远程服务对应的近端服务,用于基于接收到的所述远程服务返回的业务流程处理结果,更新所述业务流程的最终处理状态。

本说明书实施例提供的第一机房1,可以取得与上述业务处理系统1100相同的技术效果,此处不再赘述。

可选地,如图12所示,本说明书实施例还提供第二机房2,包括:待处理请求队列21和至少一个远程服务(如远程服务a、远程服务b和服务c)。

待处理请求队列21,用于接收来自第一机房的服务调用请求集合,所述服务调用请求集合中包含至少一个服务调用请求,所述服务调用请求用于请求调用所述远程服务对目标业务中的业务流程进行处理;

远程服务,用于监听所述待处理请求队列以获取所述服务调用请求集合,对所述服务调用请求集合进行拆解得到需要自身处理的服务调用请求,并在对需要自身处理的服务调用请求进行处理后,向所述远程服务在第一机房内的近端服务返回处理结果。

可选地,如图12所示,本说明书实施例还提供一种业务处理架构,包括第一机房1和第二机房2,其中,第一机房1中部署有本地业务组件容器11、异步调度模块16和至少一个近端服务(如近端服务a′、近端服务b′至近端服务c′),所述本地业务组件容器11中承载有本地业务组件110和一体化处理模块17;和第二机房2中部署所述至少一个近端服务对应的远程服务(如远程服务a、远程服务b和服务c)。

所述一体化处理模块17,用于监听并拦截来自所述本地业务组件11的至少一个服务调用请求,所述服务调用请求用于请求调用所述远程服务对目标业务中的业务流程进行处理;并在所述目标业务满足第一预设触发条件时,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述远程服务对应的近端服务对所述业务流程进行处理,以及基于所述远程服务对应的近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

所述异步调度模块16,用于在满足第二预设触发条件时调用所述远程服务;

所述远程服务,用于响应所述异步调度模块的调用,对所述业务流程进行处理,并向所述远程服务对应的近端服务返回处理结果;

所述远程服务对应的近端服务,用于基于接收到的所述远程服务返回的业务流程处理结果,更新所述业务流程的最终处理状态。

同样的,本说明书实施例提供的业务处理架构,可以取得与上述业务处理系统1100相同的技术效果,此处不再赘述。

下面对本说明书提供的电子设备进行介绍。

图13是本说明书的一个实施例提供的电子设备的结构示意图。请参考图13,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成业务处理系统。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

通过一体化处理模块,监听并拦截来自第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;

在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

上述如本说明书图6所示实施例揭示的业务处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图6的业务处理方法,本说明书在此不再赘述。

当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图6所示实施例的方法,并具体用于执行以下操作:

通过一体化处理模块,监听并拦截来自第一机房中的本地业务组件的至少一个服务调用请求,所述服务调用请求用于请求调用第二机房中部署的远程服务对目标业务中的业务流程进行处理;

在所述目标业务满足第一预设触发条件时,通过所述一体化处理模块,将所述服务调用请求发送至所述第一机房内部署的所述远程服务对应的近端服务,以调用所述近端服务对所述业务流程进行处理,并基于所述近端服务返回的处理结果,向服务调用方反馈所述目标业务的处理结果;

在满足第二预设触发条件时,通过异步调度模块,调用所述远程服务对所述业务流程进行处理,以使所述近端服务在接收所述远程服务返回的业务流程处理结果后,更新所述业务流程的最终处理状态。

上述对本说明书特定实施例进行了描述,其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1