接口服务异常时的处理方法和装置的制造方法

xiaoxiao2020-10-23  15

接口服务异常时的处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机应用领域,特别是涉及接口服务异常时的处理方法和装置。
【背景技术】
[0002]目前,业界对接口服务在异常情况下的常规处理方法是,直接返回默认的一个返回结果,或者,拒绝返回任何结果。
[0003]显然,即使现有的处理方法提供了一个返回结果,但是,对于接口服务调用方而言,该返回结果并不是一个有效的返回结果。因此,现有的处理方法并不能满足接口服务调用方的需求,这在一定程度上影响了服务器对外提供接口服务的稳定性。
[0004]因此,目前迫切需要解决的问题是:提供一种接口服务异常时的处理方案。

【发明内容】

[0005]为了解决上述技术问题,本发明实施例提供了一种接口服务异常时的处理方法和装置,以便于在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
[0006]本发明实施例公开了如下技术方案:
[0007]在本发明实施方式的第一方面中,提供了一种接口服务异常时的处理方法,在缓存池中存储有服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;所述方法包括:
[0008]判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息;
[0009]如果是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;
[0010]将提取出的返回结果返回给客户端。
[0011]结合本发明实施方式的第一方面,本发明实施方式还具有第一种可能,即在所述缓存池中还存储有服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系;
[0012]所述方法还包括:
[0013]判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期;
[0014]如果是,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。
[0015]结合本发明实施方式的第一方面,本发明实施方式还具有第二种可能,即当并发存在至少两个服务异常的接口,且所述至少两个服务异常的接口的属性信息相同时,所述将提取出的返回结果返回给客户端具体为:
[0016]将不同的返回结果返回给不同的客户端。
[0017]结合本发明实施方式的第一方面的第二种可能,本发明实施方式还具有第三种可能,即在所述缓存池中还存储有服务正常的接口的返回结果的使用次数;
[0018]将不同的返回结果返回给不同的客户端具体为:
[0019]针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。
[0020]结合本发明实施方式的第一方面、第一方面的第一种可能、第一方面的第二种可能或第一方面的第三种可能,本发明实施方式还具有第四种可能,即所述缓存池为基于条件数据库的数据表、内存或缓存中的键-值队列或各类开源的持久化数据框架中的数据存储系统。
[0021]在本发明实施方式的第二方面中,提供了一种接口服务异常时的处理装置,包括:
[0022]缓存池,用于存储服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;
[0023]第一判断单元,用于判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息;
[0024]调用单元,用于如果第一判断单元的判断结果为是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;
[0025]返回单元,用于将提取出的返回结果返回给客户端。
[0026]结合本发明实施方式的第二方面,本发明实施方式还具有第一种可能,即所述缓存池还用于,存储服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系;
[0027]所述装置还包括:
[0028]第二判断单元,用于判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期;
[0029]删除单元,用于当所述第二判断单元的判断结果为是时,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。
[0030]结合本发明实施方式的第二方面,本发明实施方式还具有第二种可能,即当并发存在至少两个服务异常的接口,且所述至少两个服务异常的接口的属性信息相同时,所述返回单元具体用于,将不同的返回结果返回给不同的客户端。
[0031]结合本发明实施方式的第二方面的第二种可能,本发明实施方式还具有第三种可能,即所述缓存池还用于,存储服务正常的接口的返回结果的使用次数;
[0032]则所述返回单元具体用于,针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。
[0033]结合本发明实施方式的第二方面、本发明实施方式的第二方面的第一种可能、本发明实施方式的第二方面的第二种可能或本发明实施方式的第二方面的第三种可能,即所述缓存池为基于条件数据库的数据表、内存或缓存中的键-值队列或各类开源的持久化数据框架中的数据存储系统。
[0034]由上述实施例可以看出,与现有技术相比,本发明的优点在于:
[0035]针对服务正常的每个接口,将这些接口的返回结果存储到缓存池中。一旦出现了服务异常的接口,先确定该服务异常的接口的属性信息是否与某一个服务正常的接口的属性信息相同,如果相同,就可以从缓存池中将这个服务正常的接口的返回结果提取出来,并作为该服务异常的接口的返回结果返回给客户端。因此,在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明的实施方式可以在其中实施的示例性应用场景;
[0038]图2为本发明实施例一提供的一种接口服务异常时的处理方法的流程图;
[0039]图3为本发明中服务器向缓存池中存储数据的一种操作示意图;
[0040]图4为本发明中服务区向缓存池中存储数据的另一种操作示意图;
[0041]图5为本发明实施例二提供的一种接口服务异常时的处理方法的流程图;
[0042]图6为本发明实施例三提供的一种接口服务异常时的处理装置的结构图;
[0043]图7为本发明实施例三提供的另一种接口服务异常时的处理装置的结构图。
【具体实施方式】
[0044]本发明实施例提供了接口服务异常时的处理方法和装置。本发明所涉及的技术方案的核心在于,每当接口服务正常时,就将服务正常的接口的属性信息(该属性信息包含接口标志和调用该接口时所使用的调用参数)和返回结果存储到缓存池中。显然,位于该缓存池中的返回结果全部是接口服务正常时所得到的有效的返回结果,并且,缓存池中的数据是实时在更新的。一旦某一个接口服务出现异常,导致该接口调用失败,如果该接口的属性信息与缓存池中已存储的某一个服务正常接口的属性信息相同,就可从缓存池中提取出该服务正常接口的返回结果,并作为该服务异常接口的返回结果返回给客户端。
[0045]首先参考图1,图1示意性地示出了本发明的实施方式可以在其中实施的示例性应用场景。其中,客户端00向服务器20发送一个调用接口 A的接口服务请求11 (该接口服务请求11中包含有接口 A的接口标志31和调用接口 A时所使用的调用参数32)。作为响应,服务器20利用调用参数32调用接口标志31所标识的接口 A,如果服务器20成功调用接口 A (即,接口 A服务 正常),就会产生有效的返回结果33。服务器20除了将该有效的返回结果33返回给客户端10之外,还要将接口 A的相关数据(即,接口标志31、调用参数32和返回结果33)存储到一个缓存池40中。之后,如果客户端10再向服务器20发送一个调用接口 A的接口服务请求12,并且,此次调用接口 A所使用的调用参数也是调用参数32,即,在该接口服务请求12中同样包含有接口 A的接口标志31和调用参数32。如果服务器20对接口 A的调用失败(B卩,接口 A服务异常),此时,服务器20对接口服务异常时的处理方式是:从缓存池中查找一个符合接口服务请求12的有效的返回结果,显然,通过查找后,月艮务器20会发现返回结果33是符合接口服务请求12的有效的返回结果,并将返回结果33返回给客户端10。服务器20可以是Web服务器,也可以是其他类型的服务器,例如APP服务器。本领域技术人员可以理解,图1所示的示意图仅是本发明的实施方式可以在其中得以实现的一个示例。本发明实施方式的应用范围不受到该框架任何方面的限制。
[0046]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。
[0047]实施例一
[0048]请参阅图2,其为本发明实施例一提供的一种接口服务异常时的处理方法的流程图,该方法包括以下步骤:
[0049]步骤200:在缓存池中存储有服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;
[0050]在分布式系统的应用中,会存在多个负责接口服务的服务器。对于每一个服务器而言,其可以拥有一个专属于自己的缓存池,并将自己处理过的所有服务正常的接口的属性信息和返回结果存储到各自的缓存池中。如图3所示。另一种优选的实现方式是,多个服务器共享一个缓存池,将各自处理过的所有服务正常的接口的属性信息和返回结果都存储到同一个缓存池中。如图4所示。
[0051]步骤201:判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性?目息,如果是,进入步骤202 ;
[0052]步骤202:从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;
[0053]步骤203:将提取出的返回结果返回给客户端。
[0054]上述步骤201中,如果缓存池中不包含与该服务异常的接口的属性信息相同的属性信息,可以采用现有技术中的处理方案,即,将一个默认的返回结果返回给客户端,或者,不向客户端返回任何返回结果。
[0055]由于接口通常是具有时效性的,因此,存储到缓存池中的各接口的返回结果也是具有时效性的,一旦失效,就无法再使用返回结果。如果过期的返回结果继续存储在缓存池中,就会造成存储空间的浪费。
[0056]鉴于此,对于缓存池中已经超过时效的返回结果,为了节省缓存池中的存储空间,还需要将该返回结果从缓存池中删除。
[0057]—种优选的实施方式是,在所述缓存池中还存储有服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系,该方法进一步还包括:判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期;如果是,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。
[0058]服务器在将服务正常的接口的返回结果存储到缓存池的同时,也将返回结果的生成时间一并保存到缓存池中。当前时间与返回结果的生成时间的差值即为该返回结果的存活时间,如果该返回结果的存活时间超过了其生命周期,说明该返回结果已经因过期而失效。所以,应该将与该返回结果相关的数据从缓存池中删除。服务器可以定期执行上述过程,从而定期将一些失效数据清理出缓存池。另外,服务器可以为不同接口的返回结果设定不同的生命周期。
[0059]如果该返回结果的存活时间没有超过其生命周期,说明该返回结果没有失效。所以,可以在缓存池中继续保留所述生成时间以及与所述生成时间相映射的属性信息和返回结果。
[0060]为了便于维护数据,在本发明的技术方案中,缓存池可以为但不限于:基于条件数据库的数据表、内存或缓存中的Key-Value(键-值)队列或各类开源的持久化数据框架中的数据存储系统。例如,开源的持久化数据框架中的数据存储系统可以为redis或mongodb。
[0061]由上述实施例可以看出,与现有技术相比,本发明的优点在于:
[0062]针对服务正常的每个接口,将这些接口的返回结果存储到缓存池中。一旦出现了服务异常的接口,先确定该服务异常的接口的属性信息是否与某一个服务正常的接口的属性信息相同,如果相同,就可以从缓存池中将这个服务正常的接口的返回结果提取出来,并作为该服务异常的接口的返回结果返回给客户端。因此,在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
[0063]实施例二
[0064]当并发存在多个服务异常的接口,并且,这些服务异常的接口的属性信息相同时,为了能够在返回结果的选择上更为平衡,避免并发情况下返回给多个客户端的返回结果集中在一个返回结果上,一种优选的实现方式是,将不同的返回结果返回给不同的客户端。
[0065]请参阅图5,其为本发明实施例二提供的一种接口服务异常时的处理方法的流程图,该方法包括以下步骤:
[0066]步骤500:缓存池中存储有服务正常的接口的属性信息、返回结果和返回结果的使用次数,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;
[0067]步骤501:判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性?目息,如果是,进入步骤502 ;
[0068]步骤502:从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;
[0069]步骤503:针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。
[0070]在本方案中,服务器需要记录各个返回结果的使用次数,一旦某一个返回结果被使用,就需要将该返回结果的使用次数加1,并更新存储在缓存池中的使用次数。
[0071]由上述实施例可以看出,与现有技术相比,本发明的优点在于:
[0072]针对服务正常的每个接口,将这些接口的返回结果存储到缓存池中。一旦出现了服务异常的接口,先确定该服务异常的接口的属性信息是否与某一个服务正常的接口的属性信息相同,如果相同,就可以从缓存池中将这个服务正常的接口的返回结果提取出来,并作为该服务异常的接口的返回结果返回给客户端。因此,在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
[0073]另外,为了保证这些服务异常的接口的返回结果之间具有差异性,而不会集中在同一个返回结果上,针对于每一个客户端,由于只选择使用次数最小的返回结果,因此,可以实现将不同的返回结果返回给不同的客户端。
[0074]实施例三
[0075]与上述一种接口服务异常时的处理方法相对应,本发明实施例还提供了一种接口服务异常时的处理装置。请参阅图6,其为本发明实施例三提供的一种接口服务异常时的处理装置的结构图,该装置包括:缓存池601、第一判断单元602、调用单元603和返回单元604。下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。
[0076]缓存池601,用于存储服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;
[0077]第一判断单元602,用于判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息;
[0078]调用单元603,用于如果第一判断单元602的判断结果为是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;
[0079]返回单元604,用于将提取出的返回结果返回给客户端。
[0080 ]优选的,如图7所示,缓存池601还用于,存储服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系;
[0081]所述装置还包括:
[0082]第二判断单元605,用于判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期;
[0083]删除单元606,用于当所述第二判断单元的判断结果为是时,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。
[0084]优选的,当并发存在至少两个服务异常的接口,且所述至少两个服务异常的接口的属性信息相同时,返回单元604具体用于,将不同的返回结果返回给不同的客户端。
[0085]进一步优选的,缓存池601还用于,存储服务正常的接口的返回结果的使用次数;
[0086]则返回单元604具体用于,针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。
[0087]优选的,所述缓存池为基于条件数据库的数据表、内存或缓存中的键-值队列或各类开源的持久化数据框架中的数据存储系统。
[0088]由上述实施例可以看出,与现有技术相比,本发明的优点在于:
[0089]针对服务正常的每个接口,将这些接口的返回结果存储到缓存池中。一旦出现了服务异常的接口,先确定该服务异常的接口的属性信息是否与某一个服务正常的接口的属性信息相同,如果相同,就可以从缓存池中将这个服务正常的接口的返回结果提取出来,并作为该服务异常的接口的返回结果返回给客户端。因此,在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
[0090]所述领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0091]在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述到的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0092]所述作为分离部件说明的单元可以是或者也可以是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0093]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,可以采用软件功能单元的形式实现。
[0094]需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。
[0095]以上对本发明所提供的接口服务异常时的处理方法和装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种接口服务异常时的处理方法,其特征在于,在缓存池中存储有服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;所述方法包括: 判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息; 如果是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果; 将提取出的返回结果返回给客户端。2.根据权利要求1所述的方法,其特征在于,在所述缓存池中还存储有服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系; 所述方法还包括: 判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期; 如果是,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。3.根据权利要求1所述的方法,其特征在于,当并发存在至少两个服务异常的接口,且所述至少两个服务异常的接口的属性信息相同时,所述将提取出的返回结果返回给客户端具体为: 将不同的返回结果返回给不同的客户端。4.根据权利要求3所述的方法,其特征在于,在所述缓存池中还存储有服务正常的接口的返回结果的使用次数; 将不同的返回结果返回给不同的客户端具体为: 针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述缓存池为基于条件数据库的数据表、内存或缓存中的键-值队列或各类开源的持久化数据框架中的数据存储系统。6.一种接口服务异常时的处理装置,其特征在于,包括: 缓存池,用于存储服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数; 第一判断单元,用于判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息; 调用单元,用于如果第一判断单元的判断结果为是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果; 返回单元,用于将提取出的返回结果返回给客户端。7.根据权利要求6所述的装置,其特征在于,所述缓存池还用于,存储服务正常的接口的返回结果的生成时间,且所述生成时间与所述属性信息和返回结果具有映射关系; 所述装置还包括: 第二判断单元,用于判断当前时间与所述生成时间的差值是否大于或等于预设的生命周期; 删除单元,用于当所述第二判断单元的判断结果为是时,从所述缓存池中删除所述生成时间以及与所述生成时间相映射的属性信息和返回结果。8.根据权利要求6所述的装置,其特征在于,当并发存在至少两个服务异常的接口,且所述至少两个服务异常的接口的属性信息相同时,所述返回单元具体用于,将不同的返回结果返回给不同的客户端。9.根据权利要求8所述的装置,其特征在于,所述缓存池还用于,存储服务正常的接口的返回结果的使用次数; 则所述返回单元具体用于,针对每一个客户端,将提取出的返回结果中使用次数最小的返回结果返回给所述客户端。10.根据权利要求6至9中任意一项所述的装置,其特征在于,所述缓存池为基于条件数据库的数据表、内存或缓存中的键-值队列或各类开源的持久化数据框架中的数据存储系统。
【专利摘要】本发明实施例公开了一种接口服务异常时的处理方法和装置。其中,在缓存池中存储有服务正常的接口的属性信息和返回结果,且所述属性信息和返回结果具有映射关系,所述属性信息包含接口标志和调用参数;所述方法包括:判断所述缓存池中是否包含与服务异常的接口的属性信息相同的属性信息;如果是,从所述缓存池中提取出与服务异常的接口的属性信息相映射的返回结果;将提取出的返回结果返回给客户端。根据本发明实施例,在在异常情况下也能为接口服务调用方提供一个有效的返回结果,满足接口服务调用方的需求,从而提高服务器对外提供接口服务的稳定性。
【IPC分类】G06F11/00, G06F12/08
【公开号】CN104899106
【申请号】CN201410083619
【发明人】吴健
【申请人】阿里巴巴集团控股有限公司
【公开日】2015年9月9日
【申请日】2014年3月7日

最新回复(0)