一种业务调用方法、装置以及电子设备与流程

文档序号:15981055发布日期:2018-11-17 00:20阅读:228来源:国知局

本说明书涉及计算机应用领域,尤其涉及一种业务调用方法、装置以及电子设备。

背景技术

在传统的分布式业务系统中,通常会存在一些彼此之间存在一定的业务调用关系的业务子系统;而且,在一些场景中,这些业务子系统之间的调用关系,可能呈现出一种串行的情况;

例如,假设在一个分布式业务系统中包括子系统a、b、c,子系统a收到用户的业务调用请求后,可以将业务调用请求传递给子系统b发起调用,子系统b再继续将业务调用请求传递给子系统b发起调用,最后子系统c在完成与上述业务调用请求对应的业务调用后,可以将被调用的业务数据回传给子系统b,子系统b再继续将业务数据回传给子系统a。



技术实现要素:

本说明书提出一种业务调用方法,应用于分布式业务系统;所述分布式业务系统包括由多个存在业务调用关系的业务子系统构成的业务链路;其中,所述业务链路为串行业务链路;所述方法包括:

所述业务链路中的头端业务子系统将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

可选的,还包括:

确定所述目标业务数据是否在所述数据临时存储空间中缓存成功;

如果所述目标业务数据在所述数据临时存储空间中缓存成功,将所述目标业务数据返回给所述第一用户。

可选的,还包括:

如果未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第一用户。

可选的,所述确定是否接收到到所述末端子系统通过所述业务链路回传的所述目标业务数据,包括:

确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据;如果是,确定接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,确定未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据。

可选的,所述确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据之前,还包括:

确定是否在预设的超时时长内接收到所述业务链路上任一下游子系统回传的故障消息;如果是,确定未接收到到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,进一步确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据。

可选的,所述数据临时存储空间为所述头端业务子系统的本地缓存空间;或者,所述头端业务子系统对接的远程缓存空间。

可选的,所述数据临时存储空间中缓存的业务数据被预设了缓存有效期;

所述方法还包括:

当所述数据临时存储空间中缓存的业务数据的缓存有效期超时,则从所述数据临时存储空间中删除该业务数据。

本说明书还提出一种业务调用装置,应用于分布式业务系统;所述分布式业务系统包括由多个存在业务调用关系的业务子系统构成的业务链路;其中,所述业务链路为串行业务链路;所述装置包括:

传递模块,将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

确定模块,确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

缓存模块,如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

可选的,所述确定模块进一步:

确定所述目标业务数据是否在所述数据临时存储空间中缓存成功;

还包括:

返回模块,如果所述目标业务数据在所述数据临时存储空间中缓存成功,将所述目标业务数据返回给所述第一用户。

可选的,还包括:

读取模块,如果未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第一用户。

可选的,所述确定模块:

确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据;如果是,确定接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,确定未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据。

可选的,所述确定模块进一步:

在确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据之前,确定是否在预设的超时时长内接收到所述业务链路上任一下游子系统回传的故障消息;如果是,确定未接收到到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,进一步确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据。

可选的,所述数据临时存储空间为所述头端业务子系统的本地缓存空间;或者,所述头端业务子系统对接的远程缓存空间。

可选的,所述数据临时存储空间中缓存的业务数据被预设了缓存有效期;

可选的,所述缓存模块进一步:

当所述数据临时存储空间中缓存的业务数据的缓存有效期超时,则从所述数据临时存储空间中删除该业务数据。

本说明书还提出一种电子设备,所述电子设备所在的分布式通中,包括由多个存在业务调用关系的业务子系统构成的业务链路;其中,所述业务链路为串行业务链路,所述电子设备包括:

处理器;

用于存储机器可执行指令的存储器;

其中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器被促使:

将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

通过以上技术方案,在分布式业务系统的业务场景下,当用户依托于由多个存在业务调用关系的业务子系统构成的串行业务链路,来发起针对目标业务数据的数据调用时,通过引入数据临时存储空间,可以在上述串行业务链路中的任一下游子系统发生故障的情况下,仍然能够从上述数据临时存储空间中正常的调用到相关的业务数据,可以提高业务链路的稳定性。

附图说明

图1是本说明书一实施例示出的一种业务调用方法的流程图;

图2是本说明书一实施例示出的一种典型的串行业务链路的示意图;

图3是本说明书一实施例示出的一种在分布式业务系统的串行业务链路中完成业务数据调用的流程图;

图4是本说明书一实施例提供的承载一种业务调用装置的电子设备所涉及的硬件结构图;

图5是本说明书一实施例提供的一种业务调用装置的逻辑框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本说明书旨在提出一种在分布式业务系统中,利用数据临时存储空间来提升由多个存在业务调用关系的业务子系统构成的串行业务链路的稳定性的技术方案。

在实现时,上述分布式业务系统可以预先部署数据临时存储空间;例如,在上述数据临时存储空间,可以是上述串行业务链路上的头端业务子系统的本地缓存空间;或者,也可以是上述头端业务子系统对接的远程缓存空间。

当第一用户在所述串行业务链路的头端子系统发起针对目标业务数据的数据调用时,上述头端子系统可以将上述数据调用请求,向上述串行业务链路中的末端子系统进行传递;

例如,头端子系统可以将数据调用请求下发至上述串行业务链路中相邻的下一子系统,而该下一子系统在收到该数据调用请求后,可以执行相同的操作,继续向下游子系统下发该数据调用请求,直至该数据调用请求被传递至上述串行业务链路中的末端子系统。

而上述头端子系统在将上述数据调用请求向上述串行业务链路的末端子系统传递后,可以确定是否接收到上述末端子系统通过上述串行业务链路回传的目标业务数据。

如果头端子系统收到了上述末端子系统回传的目标业务数据,表明此时上述头端子系统在上述串行业务链路上的下游子系统均处于正常状态,上述头端子系统除了可以将上述目标业务数据返回给上述第一用户以外,还可以将上述目标业务数据在上述数据临时存储空间进行缓存。

当头端子系统再次收到第二用户的针对上述目标业务数据的数据调用请求,可以执行相同的操作,可以将上述数据调用请求,将该数据调用请求向上述串行业务链路中的末端子系统进行传递,并确定是否接收到上述末端子系统通过上述串行业务链路回传的目标业务数据。如果未接收到上述末端子系统通过上述串行业务链路回传的目标业务数据,此时可以直接从上述数据临时存储空间中读取上述目标业务数据,然后将读取到的目标业务数据返回给第二用户。

通过以上技术方案,在分布式业务系统的业务场景下,当用户依托于由多个存在业务调用关系的业务子系统构成的串行业务链路,来发起针对目标业务数据的数据调用时,通过引入数据临时存储空间,可以在上述串行业务链路中的任一下游子系统发生故障的情况下,仍然能够从上述数据临时存储空间中正常的调用到相关的业务数据,可以提高业务链路的稳定性。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图1,图1是本说明书一实施例提供的一种业务调用方法,应用于分布式业务系统;所述分布式业务系统包括由多个存在业务调用关系的业务子系统构成的业务链路;其中,所述业务链路为串行业务链路;执行以下步骤:

步骤102,所述业务链路中的头端业务子系统将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

步骤104,确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

步骤106,如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

上述所述分布式业务系统,具体可以包括基于设备集群搭建的呈现分布式架构的业务系统;例如,在一种较为典型的架构中,上述分布式业务系统具体可以是基于服务器集群搭建的分布式架构的业务系统。

其中,在上述分布式业务系统中,可以包含若干存在业务调用关系的业务子系统;所谓业务调用关系,是指多个业务子系统之间存在业务层面的数据依赖;例如,假设子系统a、b和c具有业务调用关系,那么用户在子系统a发起对业务数据的调用后,子系统a会进一步调用子系统b,子系统b再进一步调用子系统c依次进行数据传递。

上述串行业务链路,是指由多个存在业务调用关系的业务子系统构成的,各子系统在业务层面的数据依赖,呈现一种串行状态的业务链路。

例如,请参见图2,图2为示出的一种典型的串行业务链路;在图2中,用户在子系统a发起针对业务数据的数据调用时,子系统a会进一步将该数据调用请求透传给子系统b,发起针对子系统b的调用,从子系统b请求业务数据;而子系统b在收到子系统a透传的数据调用请求后,会执行相同的动作,将该数据调用请求透传给子系统c,发起针对子系统c的调用,从子系统c请求业务数据;而子系统c可以响应上述数据调用请求,执行相关的数据服务,将被调用的业务数据回传给子系统b,再由子系统b回传给子系统a。

上述头端业务子系统,具体是指上述串行业务链路中作为头端结点的子系统;例如,图2中示出的子系统a即为上述串行业务链路的头端节点。作为头端节点的子系统,可以直接与用户客户端进行对接,来响应用户发起的数据调用请求,并将该数据调用请求继续向业务链路的下游子系统进行传递;

相应的,上述末端子系统,具体是指上述串行业务链路中作为末端节点的子系统;例如,图2中示出的子系统c即为上述串行业务链路的末端节点;作为末端节点的子系统,可以作为最终响应用户发起的数据调用请求的执行节点,通过调用相关的数据服务,向用户回传被调用的业务数据。

请参见图3,图3为本说明书示出的一种在分布式业务系统的串行业务链路中完成业务数据调用的流程图。

其中,需要说明的是,图3中示出的串行业务链路,为由具有业务调用关系的业务子系统a、b和c等三个子系统构成的串行业务链路仅为示意性的,在实际应用中,上述串行业务链路中的业务子系统中的数据,取决于实际的业务场景,在本说明书不进行特别限定。

如图3所示,在上述分布式业务系统中,可以预先部署数据临时存储空间;其中,上述数据临时存储空间,具体用于缓存被成功调用的业务数据。即当用户发起的数据调用请求,由上述串行业务链路中的头端业务子系统在上述串行业务链路中按顺序依次被传递至末端子系统后,如果末端子系统执行了本次数据调用,并且通过上述串行业务链路将被调用的业务数据成功回传至上述头端子系统,表示本次调用成功,回传的该业务数据将作为被成功调用的业务数据缓存至上述数据临时存储空间。

其中,需要说明的是,上述数据临时存储空间,具体可以是上述分布式系统中部署的缓存空间。

在示出的一种实施方式中,上述缓存空间具体可以是上述头端子系统的本地缓存空间,也可以是上述头端子系统对接的远程缓存空间;例如,在一种实现方式中,可以在上述头端子系统对应的服务器的存储空间中,预先划分出一定大小的缓存空间作为上述数据临时存储空间;在另一种实现方式中,上述头端子系统可以远程对接一缓存服务器,将该缓存服务器上的全部或者部分预先划分出的存储空间,作为上述数据临时存储空间。

以下以第一用户和第二用户基于图3中示出的串行业务链路分别调用一份相同的目标业务数据为例,对本说明书的技术方案进行详细描述。

请参见图3,第一用户和第二用户均可以通过业务客户端(比如app)接入到上述串行业务链路中的业务子系统a,向上述业务子系统a发起针对上述目标业务数据的数据调用。

其中,用户通过业务客户端发起对上述目标业务数据的数据调用的触发方式,在本说明书中不进行特别限定;在实际应用中,可以通过在上述业务客户端的用户界面中提供用于发起数据调用的操作入口来实现;

例如,以上述目标业务数据为订单数据,第一用户和第二用户基于上述串行业务链路来调用一笔相同的订单数据为例,在上述客户端可以提供一个用于触发订单查询的查询按钮,用户可以通过业务客户端输入待查询的订单号,然后通过操作该查询按钮,发起针对该订单号指示的订单数据的数据调用查询。

请继续参见图3,当上述子系统a(即头端子系统)收到第一用户发起的针对目标业务数据的数据调用请求后,可以将该数据调用请求继续向上述串行业务链路上的下游子系统进行下发,将该数据调用请求进一步下发至子系统b。而子系统b在收到子系统a下发的数据调用请求后,可以执行相同的动作,将该数据调用请求继续下发至子系统c,以此类推,直至该数据调用请求依托于上述串行业务链路,最终被透传给了末端子系统。

当上述子系统c(即末端子系统)收到经由上述串行业务链路透传过来的数据调用请求后,可以调用相关的数据服务,访问相关的业务数据库从中查询出第一用户需要调用的目标业务数据。

其中,需要说明的是,第一用户发起的针对上述目标业务数据的数据调用请求中,具体可以携带上述目标业务数据的标识信息。

例如,以上述目标业务数据为订单数据为例,上述标识信息具体可以是订单编号。

而上述子系统c在调用相关的数据服务时,具体可以将该数据调用请求中携带的该目标业务数据的标识信息作为查询索引,从相关的业务数据库从中查询出上述目标业务数据。

请继续参见图3,当子系统c查询出第一用户需要调用的目标业务数据后,可以进一步将该目标业务数据向上述串行业务链路的上游子系统进行回传,将该目标业务数据进一步回传至子系统b。而子系统b在收到子系统c回传的目标业务数据后,可以执行相同的动作,将该目标业务数据继续回传至子系统a,以此类推,直至该目标业务数据依托于上述串行业务链路,最终被回传给了头端子系统。

而子系统a而言,在将第一用户发起的针对上述目标业务数据的数据调用请求进一步下发给下游子系统后,可以立即确定是否接收到子系统c通过上述业务链路回传的目标业务数据。

其中,在示出的一种实施方式中,子系统a在确定是否接收到子系统c回传的目标业务数据时,具体可以通过引入回传超时机制来实现。

在这种情况下,子系统a可以预先设定一个回传超时时长,当子系统a在将第一用户发起的针对上述目标业务数据的数据调用请求进一步下发给下游子系统后,可以立即启动计时器开始计时,并基于该计时器的计时结果,来确认是否在该回传超时时长之内,接收到子系统c回传的目标业务数据;

如果在该回传超时时长内收到了系统c回传的目标业务数据,表明上述串行业务链路上的各个下游子系统均为正常状态,此时子系统a可以确认接收到了子系统c返回的目标业务数据。

反之,如果在该回传超时时长内未收到系统c回传的目标业务数据,表明上述串行业务链路中的下游子系统中,可能存在了故障节点;比如,子系统对应的服务器宕机,或者由于网络故障导致丢包,无法进行正常的数据回传;此时,子系统a可以确认接收到了子系统c返回的目标业务数据。

当然,在实际应用中,子系统a在上述串行业务链路上的下游子系统,在遭遇下游子系统故障时,也可以主动向上游子系统上报故障消息。

例如,子系统b在将上述数据调用请求进一步下发至子系统c后,如果子系统c在回传超时时长内未收到子系统c回传的目标业务数据;或者,通过其它检测手段检测到子系统c与子系统b之间当前处于链路不可达的状态,此时可以判断子系统c发生故障,子系统b可以向上游的子系统a回传一个提示子系统c发生故障的故障消息。

在这种情况下,上述子系统a还可以确定是否在回传超时时长内接收到上述串行业务链路上任一下游子系统回传的故障消息;如果子系统a在上述回传超时时长内接收到了下游子系统发生故障的故障消息,可以立即判定未接收到末端子系统回传的目标业务数据;反之,如果子系统a在上述回传超时时长内未接收到下游子系统发生故障的故障消息,此时可以再开始确定是否在上述回传超时时长之内,接收到子系统c回传的目标业务数据。

通过这种方式,可以将基于下游子系统返回的故障消息,来确定是否在接收到子系统c回传的目标业务数据的机制,对通过引入回传超时机制来确定是否接收到子系统c回传的目标业务数据的机制,进行进一步的补充,可以有效防止系统误判。

请继续参见图3,当子系统a确认收到了子系统c回传的目标业务数据后,表明上述串行业务链路上的各个下游子系统均为正常状态,此时上述子系统a除了可以将上述目标业务数据通过业务客户端返回给第一用户以外,还可以将上述目标业务数据作为成功调用的业务数据,缓存至上述数据临时存储空间。

后续,如果第二用户通过业务客户端接入到上述业务子系统a,依托于上述串行业务链路,再次发起针对上述目标业务数据的数据调用时,如果业务子系统a的下游子系统发生故障,导致子系统c无法将上述目标业务数据回传给上述子系统a,此时子系统a可以从上述数据临时存储空间中读取该目标业务数据,并将读取到的该目标业务数据返回给上述第二用户,从而保证上述串行业务链路的稳定性。

当然,当第一用户发起针对上述目标业务数据的调用后,如果子系统a确认未收到子系统c回传的目标业务数据,也可以从上述数据临时存储空间中读取该目标业务数据(即在第一用户成功调用上述目标业务数据之前,已经有其它用户先于第一用户成功调用并获取到了上述目标业务数据),然后将读取到的该目标业务数据返回给上述第一用户。

其中,需要说明的是,上述子系统a在向第一用户返回上述目标业务数据的动作,和上述子系统a将上述目标业务数据在上述数据临时存储空间中进行缓存的动作的执行先后顺序,在本说明书中不进行特别限定。

在示出的一种实施方式中,上述子系统a发起将上述目标业务数据向上述数据临时存储空间进行缓存后,可以进一步确定上述目标业务数据是否缓存成功;如果缓存成功,再将上述目标业务数据通过业务客户端返回给所述第一用户。

通过这种方式,可以确保再将上述目标业务数据成功缓存至上述数据临时存储空间后,再向上述第一用户返回上述目标业务数据,从而可以避免由于上述目标业务数据未成功接入上述数据临时存储空间,导致的同一用户再次调用相同的业务数据时,无法取得业务数据的问题,有助于提升用户体验。

当然,在实际应用中,上述子系统a在向第一用户返回上述目标业务数据的动作,和上述子系统a将上述目标业务数据在上述数据临时存储空间中进行缓存的动作,也可以同时执行;或者,上述子系统a在向第一用户返回上述目标业务数据的动作,也可以先于上述子系统a将上述目标业务数据在上述数据临时存储空间中进行缓存的动作进行执行。

请继续参见图3,假设第二用户依托于上述串行业务链路再次发起针对上述目标业务数据的调用,此时当上述子系统a收到第二用户发起的针对目标业务数据的数据调用请求后,可以采用相同的方式,将该数据调用请求进一步下发至子系统b,由子系统b再将该数据调用请求继续下发至子系统c。当上述子系统c在调用相关的数据服务,访问相关的业务数据库从中查询出上述目标业务数据后,可以进一步将该目标业务数据向上述串行业务链路的上游子系统进行回传,将该目标业务数据进一步回传至子系统b,然后由该子系统b再进一步回传给子系统a。

而子系统a,仍然可以在将第一用户发起的针对上述目标业务数据的数据调用请求进一步下发给下游子系统后,立即确定是否接收到子系统c通过上述业务链路回传的目标业务数据。其中,具体的确认方式不再赘述,请参考之前的记载。

一方面,如果子系统a确定接收到子系统c回传目标业务数据,表明上述串行业务链路上的各个下游子系统均为正常状态,此时子系统a可以直接将该目标业务数据返回给第二用户;同时,由于上述目标业务数据在此之前已经成功缓存至数据临时存储空间,此时上述子系统a可以忽略将上述目标业务数据缓存至上述数据临时存储空间的动作。或者,上述子系统a也可以再次执行一次将上述目标业务数据缓存至上述数据临时存储空间的动作,对再次之前已经缓存至上述数据临时存储空间中的上述目标业务数据进行覆盖更新。

另一方面,如果子系统a确定未接收到子系统c回传目标业务数据,表明上述串行业务链路中的下游子系统中,可能存在了故障节点(图4中示出的为子系统a和子系统b之间发生网络中断),可以立即启动应急预案,从上述数据临时存储空间中读取上述目标业务数据,然后将读取到的上述目标业务数据通过业务客户端返回给第二用户;

例如,可以将上述数据调用请求中携带的标识信息作为查询索引,在上述数据临时存储空间中发起查询,然后将查询到的目标业务数据返回给上述第二用户。

对于第二用户来说,由于其仍然能够正常的获取到需要调用的目标业务数据,并且并不能感知到当前上述串行业务链路上的下游子系统发生了故障,因此有助于提升第二用户的用户体验。

在本说明书中,对于缓存在上述数据临时存储空间中的业务数据,还可以预先设置缓存有效期,进而当上述数据临时存储空间中缓存的业务数据的缓存有效期超时,则可以从上述数据临时存储空间中删除该业务数据。

通过这种方式,可以最大程度的利用上述数据临时存储空间的存储资源。

其中,需要说明的是,为缓存在上述数据临时存储空间中的业务数据设置的缓存有效期的具体有效期长度,在实际应用中,可以基于业务数据对应的业务类型,进行差异化的设置;可以针对不同的业务类型,分别设置不同的缓存有效期;例如,对于一些业务数据的更新频率较低的业务场景,可以将业务数据的缓存有效期设置为一个较大的取值;反之,对于一些业务数据的更新频率较高的业务场景,可以将业务数据的缓存有效期设置为一个较小的取值。

与上述方法实施例相对应,本说明书还提供了一种业务调用装置的实施例。本说明书的业务调用装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。

从硬件层面而言,如图4所示,为本说明书的业务调用装置所在电子设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

图5是本说明书一示例性实施例示出的一种业务调用装置的框图。

请参考图5,所述业务调用装置50可以应用在前述图4所示的电子设备中;其中,所述电子设备所在的分布式系统中,包括由多个存在业务调用关系的业务子系统构成的业务链路;所述业务链路为串行业务链路;所述装置包括有:传递模块501、确定模块502、和缓存模块503;

传递模块501,将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

确定模块502,确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

缓存模块503,如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

在本实施例中,所述确定模块502进一步:

确定所述目标业务数据是否在所述数据临时存储空间中缓存成功;

所述装置50还包括:

返回模块504(图5中未示出),如果所述目标业务数据在所述数据临时存储空间中缓存成功,将所述目标业务数据返回给所述第一用户。

在本实施例中,所述装置50还包括:

读取模块505(图5中未示出),如果未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第一用户。

在本实施例中,所述确定模块502:

确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据;如果是,确定接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,确定未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据。

在本实施例中,所述确定模块502进一步:

在确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据之前,确定是否在预设的超时时长内接收到所述业务链路上任一下游子系统回传的故障消息;如果是,确定未接收到到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,进一步确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据。

在本实施例中,所述数据临时存储空间为所述头端业务子系统的本地缓存空间;或者,所述头端业务子系统对接的远程缓存空间。

在本实施例中,所述数据临时存储空间中缓存的业务数据被预设了缓存有效期;

所述缓存模块503进一步:

当所述数据临时存储空间中缓存的业务数据的缓存有效期超时,则从所述数据临时存储空间中删除该业务数据。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。其中,该电子设备所在的分布式系统中,包括由多个存在业务调用关系的业务子系统构成的业务链路;其中,所述业务链路为串行业务链路;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器被促使:

将第一用户发起的针对目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递;

确定是否接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;

如果接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则将所述目标业务数据在数据临时存储空间中进行缓存,以使在将第二用户发起的针对所述目标业务数据的数据调用请求,向所述业务链路中的末端子系统传递后,未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据时,从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第二用户。

在本实施例中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器还被促使:

确定所述目标业务数据是否在所述数据临时存储空间中缓存成功;

如果所述目标业务数据在所述数据临时存储空间中缓存成功,将所述目标业务数据返回给所述第一用户。

在本实施例中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器还被促使:

如果未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据,则从所述数据临时存储空间中读取所述目标业务数据,并将读取到的所述目标业务数据返回给所述第一用户。

在本实施例中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器还被促使:

确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据;如果是,确定接收到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,确定未接收到所述末端子系统通过所述业务链路回传的所述目标业务数据。

在本实施例中,通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器还被促使:

在确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据之前,确定是否在预设的超时时长内接收到所述业务链路上任一下游子系统回传的故障消息;如果是,确定未接收到到所述末端子系统通过所述业务链路回传的所述目标业务数据;如果否,进一步确定是否在预设的超时时长内收到所述业务链路中的末端子系统回传的所述目标业务数据。

在本实施例中,所述数据临时存储空间中缓存的业务数据被预设了缓存有效期;通过读取并执行所述存储器存储的与业务调用的控制逻辑对应的机器可执行指令,所述处理器还被促使:

当所述数据临时存储空间中缓存的业务数据的缓存有效期超时,则从所述数据临时存储空间中删除该业务数据。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

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

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