服务请求的调用方法、装置、计算机设备及存储介质与流程

文档序号:17843226发布日期:2019-06-11 21:27阅读:114来源:国知局

本发明属于计算机技术领域,尤其涉及一种服务请求的调用方法、服务请求的调用装置、计算机设备及计算机存储介质。



背景技术:

随着软件技术的发展,应用系统的种类越来越多,其设计也越来越复杂。大多数应用系统都采购了分层架构,如前端应用负责接收用户的服务请求并发送至后端服务,后端服务负责执行服务请求中的内容信息等,然而,在这种前后端分离的架构中,当需要处理的前端服务调用请求数量超过后端服务能够处理的数量时,后端服务的处理效率会明显下降,甚至会出现后端服务假死或宕机。

在现有技术中,在原有的一般查询业务功能模块的基础上,再设置一大查询业务功能模块,通过对大查询并发数的限制,控制对于业务的响应能力;或者按照需要在控制服务请求并发的同时,保证不同用户的访问请求能够按照需要的权重方式得到服务,无论以哪种方式控制服务调用请求都是在服务端完成,没有在请求发起端对访问进行控制,特别是当后端服务因各种原因已经出现问题时,前端仍会继续发送服务调用请求。因此,如何实现前端能够动态计算服务端处理能力,动态控制服务调用请求成为亟待解决的问题。



技术实现要素:

本发明实施例提供一种在服务请求的调用方法、装置、计算机设备及计算机存储介质,能够将预设时间内服务调用成功率与预设阈值进行对比,用户/客户端能够知晓后端服务能够完成调用的能力,并且当后端服务在预设时间内来不及处理当前所有数量的服务调用请求时,用户/客户端侧会减少服务调用请求数量,以实现对服务调用的动态控制,因此有效减轻了调用后端服务的压力,作为发起端也不必发送过多无法被处理的服务调用请求,节约了系统传输资源。

一方面,本发明实施例提供一种服务请求的调用方法,包括:

在需要发送服务调用请求时,获取预设时间内的服务调用成功率;判断服务调用成功率是否大于预设阈值;若服务调用成功率大于预设阈值,则向后端服务发送第一数量的服务调用请求;若服务调用成功率小于或等于预设阈值,则调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求。

在上述技术方案中,优选地,第一数量大于第二数量。

在上述技术方案中,优选地,调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求的步骤,具体包括:根据预设阈值、服务调用成功率、第一数量,按照预设公式计算第二数量;向后端服务发送第二数量的服务调用请求;其中,预设公式为t为第二数量,max为预设阈值,k为服务调用成功率,p为第一数量。

在上述技术方案中,优选地,还包括:接收由后端服务返回的对服务调用请求的调用结果;根据调用结果计算预设时间内的下一服务调用成功率。

在上述技术方案中,优选地,调用结果包括服务调用请求调用成功和服务调用请求调用失败。

在上述技术方案中,优选地,根据调用结果计算预设时间内的下一服务调用成功率的步骤,具体包括:获取预设时间内服务调用请求的总次数,和服务调用请求调用成功的次数;计算调用成功的次数与总次数的比值作为下一服务调用成功率。

在上述技术方案中,优选地,获取预设时间内服务调用请求的总次数,和服务调用请求调用成功的次数的步骤,具体包括:在预设时间内,每次接收到调用结果时在上一总次数的基础上加一,得到总次数;每次接收到的调用结果为服务调用请求调用成功时,在上一调用成功的次数的基础上加一,得到调用成功的次数。

另一方面,本发明实施例提供了一种服务请求的调用装置,包括:请求控制单元,用于在需要发送服务调用请求时,获取预设时间内的服务调用成功率;判断服务调用成功率是否大于预设阈值;服务处理单元,用于若服务调用成功率大于预设阈值,则向后端服务发送第一数量的服务调用请求;以及若服务调用成功率小于或等于预设阈值,则调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求。

在上述技术方案中,优选地,还包括:结果处理单元,用于根据接收到的由后端服务返回的对服务调用请求的调用结果,计算预设时间内的下一服务调用成功率。

再一方面,本发明实施例提供了一种计算机设备,设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现如上述任意一项的服务请求的调用方法。

再一方面,本发明实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上述任意一项的服务请求的调用方法。

本发明实施例的服务请求的调用方法、装置、计算机设备及计算机存储介质,能够根据调用结果计算服务调用成功率,通过将调用成功率与预设阈值的对比,当确定后端服务在预设时间内来不及处理当前所有数量的服务调用请求时,用户/客户端侧会减少服务调用请求数量,实现对服务调用的动态控制,有效减轻了调用后端服务的压力,作为发起端也不必发送过多无法被处理的服务调用请求,节约了系统传输资源。本发明实施例的技术方案能够在不会造成后端服务卡顿、死机的情况下,向后端服务发送完全能够被后端服务接收的最优数量的服务调用请求,增加了处理效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明的一个实施例的服务请求的调用方法流程示意图;

图2示出了本发明的另一个实施例的服务请求的调用方法流程示意图;

图3示出了本发明的再一个实施例的服务请求的调用方法流程示意图;

图4示出了本发明的又一个实施例的服务请求的调用方法流程示意图;

图5示出了本发明的一个实施例的服务请求的调用装置的结构示意图;

图6示出了本发明的另一个实施例的服务请求的调用装置的结构示意图;

图7示出了本发明的一个实施例的服务请求的调用装置的工作原理示意图;

图8示出了本发明的一个实施例的计算机设备的结构示意图;

图9示出了本发明的另一个实施例的计算机设备的结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了解决现有技术问题,本发明实施例提供了一种服务请求的调用方法、装置、计算机设备及计算机存储介质。下面首先对本发明实施例所提供的服务请求的调用方法进行介绍。

图1示出了本发明一个实施例提供的服务请求的调用方法的流程示意图。如图1所示,该方法包括:

步骤102,在需要发送服务调用请求时,获取预设时间内的服务调用成功率;

步骤104,判断服务调用成功率是否大于预设阈值,若是,则执行步骤106,否则,执行步骤108;

步骤106,向后端服务发送第一数量的服务调用请求;

步骤108,调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求。

在该实施例中,将预设时间内服务调用成功率与预设阈值进行对比,用户/客户端能够知晓后端服务能够处理调用请求的能力,并且当后端服务在预设时间内来不及处理当前所有数量的服务调用请求时,用户/客户端侧会减少服务调用请求数量,以实现对服务调用的动态控制,因此有效减轻了调用后端服务的压力,作为发起端也不必发送过多无法被处理的服务调用请求,节约了系统传输资源。

在本发明的一个实施例中,优选地,第一数量大于第二数量。

在该实施例中,即在调用成功率小于或者等于预设阈值时,发送的服务调用请求的数量减小,减少当前服务调用请求的数量,有助于缓解后端压力。其中第二数量为在不会造成后端服务卡顿、死机的情况下,完全能够被后端服务接收的服务调用请求的最大数量。

图2示出了本发明另一个实施例提供的服务请求的调用方法的流程示意图。如图2所示,该方法包括:

步骤202,在需要发送服务调用请求时,获取预设时间内的服务调用成功率;

步骤204,判断服务调用成功率是否大于预设阈值若是,则执行步骤206,否则,执行步骤208;

步骤206,向后端服务发送第一数量的服务调用请求;

步骤208,根据预设阈值、服务调用成功率、第一数量,按照预设公式计算第二数量;

步骤210,向后端服务发送第二数量的服务调用请求。

其中,预设公式为t为第二数量,max为预设阈值,k为服务调用成功率,p为第一数量,第一数量大于第二数量。

在该实施例中,将预设时间内服务调用成功率与预设阈值进行对比,在用户预先设置的阈值小于服务调用成功率时发送第一数量的服务调用请求,在用户预先设置的阈值大于或等于服务调用成功率时,表明后端服务不能处理所有将要被发送的服务调用请求,因此,可以根据预设公式重新调整将要被发送的服务调用请求的数量,以降低后端压力。

例如,取得预设时间(用户定义)内服务调用请求成功率k,预设阈值为max,当k大于max时,批量(第一数量)发送服务调用请求,如每秒500次。当k值小于max,max除以k后向下取整,再根据上述预设公式实现数量的阶梯调用,降低服务请求发送频率,如预设阈值max为80%,服务调用成功率k为40%,将上述数值一一代入预设公式t=(1/2)×500,得出第二数量为250次,即当前向后端服务发送服务调用请求的数量为250。

图3示出了本发明再一个实施例提供的服务请求的调用方法的流程示意图。如图3所示,该方法包括:

步骤302,在需要发送服务调用请求时,获取预设时间内的服务调用成功率;

步骤304,判断服务调用成功率是否大于预设阈值若是,则执行步骤306,否则,执行步骤308;

步骤306,向后端服务发送第一数量的服务调用请求;

步骤308,根据预设阈值、服务调用成功率、第一数量,按照预设公式计算第二数量;

步骤310,向后端服务发送第二数量的服务调用请求;

步骤312,接收由后端服务返回的对服务调用请求的调用结果;

步骤314,根据调用结果计算预设时间内的下一服务调用成功率。

其中,预设公式为t为第二数量,max为预设阈值,k为服务调用成功率,p为第一数量。

在该实施例中,将预设时间内服务调用成功率与预设阈值进行对比,在用户预先设置的阈值小于服务调用成功率时发送第一数量的服务调用请求,在用户预先设置的阈值大于或等于服务调用成功率时,根据预设公式重新调整将要被发送的服务调用请求的数量,以降低后端压力。后端服务对所有当前接收到的服务调用请求进行标记,并生成调用结果返回给客户端,客户端再根据接收到调用结果分析出预设时间内下一服务调用成功率,从而决定发送第一数量的服务调用请求或第二数量的服务调用请求。

在本发明的一个实施例中,优选地,调用结果包括服务调用请求调用成功和服务调用请求调用失败。

在该实施例中,任一服务调用请求所请求的服务被调用后,后端服务将该服务调用请求标记为成功,若所请求的服务没有被调用,后端服务将该服务调用请求标记为失败。

图4示出了本发明又一个实施例提供的服务请求的调用方法的流程示意图。如图4所示,该方法包括:

步骤402,在需要发送服务调用请求时,获取预设时间内的服务调用成功率;

步骤404,判断服务调用成功率是否大于预设阈值若是,则执行步骤406,否则,执行步骤408;

步骤406,向后端服务发送第一数量的服务调用请求;

步骤408,根据预设阈值、服务调用成功率、第一数量,按照预设公式计算第二数量;

步骤410,向后端服务发送第二数量的服务调用请求;

步骤412,接收由后端服务返回的对服务调用请求的调用结果;

步骤414,获取预设时间内服务调用请求的总次数,和服务调用请求调用成功的次数;

步骤416,计算调用成功的次数与总次数的比值作为下一服务调用成功率。

其中,预设公式为t为第二数量,max为预设阈值,k为服务调用成功率,p为第一数量。步骤414具体为在预设时间内,每次接收到调用结果时在上一总次数的基础上加一,得到总次数;每次接收到的调用结果为服务调用请求调用成功时,在上一调用成功的次数的基础上加一,得到调用成功的次数。

在该实施例中,将预设时间内服务调用成功率与预设阈值进行对比,在用户预先设置的阈值小于服务调用成功率时发送第一数量的服务调用请求,在用户预先设置的阈值大于或等于服务调用成功率时,根据预设公式重新调整将要被发送的服务调用请求的数量,以降低后端压力。后端服务反馈对服务调用请求的调用结果,客户端再根据接收到调用结果分析出预设时间内下一服务调用成功率,从而决定直接发送所有下一服务调用请求或对下一服务调用请求的数量进行修正。

在预设时间内,服务调用请求的总次数是后端服务提供的,而每次服务调用请求不一定被成功调用,因此记录后端服务成功调用服务调用请求的次数,将已调用成功的次数与总次数的比值作为服务调用成功率,通过计算服务调用成功率知晓后端处理处理能力,进而为下一次发送服务调用请求提供依据。

图5示出了本发明一个实施例提供的服务请求的调用装置500的结构示意图。如图5所示,该装置500包括:

请求控制单元502,用于在需要发送服务调用请求时,获取预设时间内的服务调用成功率;判断服务调用成功率是否大于预设阈值;

服务处理单元504,用于若服务调用成功率大于预设阈值,则向后端服务发送第一数量的服务调用请求;以及若服务调用成功率小于或等于预设阈值,则调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求。

在该实施例中,将预设时间内上一服务调用成功率与预设阀值进行对比,用户/客户端能够知晓后端服务能够完成调用的能力,并且当后端服务在预设时间内来不及处理当前所有数量的服务调用请求时,用户/客户端侧会减少服务调用请求数量,以实现对服务调用的动态控制,这样有效减轻了调用后端服务的压力,作为发起端也不必发送过多无法被处理的服务调用请求,节约了系统传输资源。

图6示出了本发明另一个实施例提供的服务请求的调用装置600的结构示意图。如图6所示,该装置包括:

请求控制单元602,用于在需要发送服务调用请求时,获取预设时间内的服务调用成功率;判断服务调用成功率是否大于预设阈值;

服务处理单元604,用于若服务调用成功率大于预设阈值,则向后端服务发送第一数量的服务调用请求;以及若服务调用成功率小于或等于预设阈值,则调整服务调用请求的发送数量至第二数量,再向后端服务发送第二数量的服务调用请求;

结果处理单元606,用于根据接收到的由后端服务返回的对服务调用请求的调用结果,计算预设时间内的下一服务调用成功率。

在该实施例中,请求控制单元602设有max值,服务调用成功率(如80%),维护服务调用请求发送队列t1...ti。请求控制单元602获取服务调用请求后,从结果处理单元606中取得预设时间内服务调用成功率k,当k大于max值时,批量(第一数量)发送服务调用请求给服务处理单元604,如每秒500次。当k值小于max值,根据计算公式,降低服务请求发送频率,先计算值,即max除以k后再向下取整。再用公式实现发送数量的阶梯调用:发送数量其中p为第一数量。如当k=38%时,t=1/2×500,单位时间内只发250次服务请求。预设时间为用户自己定义的时间段,如30秒,或1分钟,或2分钟等。服务处理单元604负责处理请求控制单元602发送过来的服务调用请求,把请求发送给后端服务,并把请求处理结果发送给结果处理单元606,包括服务请求调用成功与失败标记。结果处理单元606根据服务请求调用结果来计算单位时间内服务请求处理成功率,得出k值。k值计算公式为k=tm/tn。tm为单位时间内服务请求处理成功次数,每当服务处理单元604发送过来服务请求调用结果为成功的请求调用时,tm加1。tn为预设时间内总次数,每当服务处理单元604发送过来服务请求调用结果不管成功和失败,tn都加1。

图7示出了本发明的一个实施例的服务请求的调用装置的工作原理示意图。其中,在预设时间内,用户/客户端702向请求控制单元704发送当前服务调用请求,请求控制单元704接收到当前服务调用请求后转发至服务处理单元706,同时判断上一服务调用成功率是否大于请求控制单元704中的预设阈值,服务处理单元706接收到当前服务调用请求后,根据请求控制单元704对上一调用成功率与预设阈值的判断结果,调整当前服务调用请求的数量并发送至后端服务708,服务处理单元706接收由后端服务708返回的对服务调用请求的调用结果,并把调用结果发送给结果处理单元710,结果处理单元710根据调用结果中服务调用请求调用成功和失败的标记计算出当前服务调用成功率,并将当前服务调用成功率发送给请求控制单元704,请求控制单元704将最终结果返回给用户/客户端702,至此流程结束。

图8示出了本发明一个实施例提供的计算机设备800的结构示意图。如图8所示,该设备包括:

处理器802以及存储有计算机程序指令的存储器804。具体地,上述处理器802可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器804可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器804可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器804可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器804可在综合网关容灾设备的内部或外部。在特定实施例中,存储器804是非易失性固态存储器。在特定实施例中,存储器804包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器802通过读取执行存储器804中存储的计算机程序指令,以实现如上述实施例中的任意一项的服务请求的调用方法。

在一个示例中,计算机设备还可包括通信接口906和总线908。其中,如图9所示,处理器902、存储器904、通信接口906通过总线908连接并完成相互间的通信。

通信接口906,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线908包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线908可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

另外,结合上述实施例中的服务请求的调用方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种服务请求的调用方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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