推荐服务调用方法、介质、装置和计算设备
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及推荐服务调用方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前一种保障推荐服务在大促期间高并发和可靠性的方法是在上游关闭部分推荐服务的开关,一些访问量很大的场景不再调用推荐服务,而是使用预先准备的大促备选方案。这样,在大促期间可以保证只有访问量不大的场景使用推荐服务,将推荐服务的压力控制在很低的范围之内,同时也能保证大促期间访问量大的场景有数据返回,还能提供容错机制,保证更高的系统稳定些。
在大中型分布式系统中,通常系统很多依赖(HTTP,Netty,Dubbo等),在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题:如网络连接缓慢,资源繁忙,暂时不可用,服务脱机等。当依赖阻塞时,大多数服务器的线程池就出现阻塞(BLOCK),影响整个线上服务的稳定性,在复杂的分布式架构的应用程序有很多的依赖,都会不可避免地在某些时候失败。高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险。
对于考拉推荐系统,对接着目前线上近百个推荐场景的接口,大促期间流量很大的情况下,一些接口会出现超时。当这些超时堆积起来,会使调用方超时,从而导致整个链路超时,拖垮整个服务。对于推荐系统内部而言,这些调用量大的超时接口会占用大量Tomcat线程,消耗宝贵的CPU资源,进一步导致别的接口出现问题。
发明内容
为此,非常需要一种改进的推荐服务调用方案,以有利于实现系统的高并发和可靠性。
在本上下文中,本发明的实施方式期望提供一种推荐服务调用方法、介质、装置和计算设备。
在本发明实施方式的第一方面中,提供了一种推荐服务调用方法,包括:接收服务调用请求;基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;根据调用结果返回调用内容。
在本发明实施方式的第二方面中,提供了一种推荐服务调用装置,包括:请求接收模块,被配置为接收服务调用请求;调用模块,被配置为基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;数据返回模块,被配置为根据调用结果返回调用内容。。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,存储有程序代码,所述程序代码当被处理器执行时,实现如上所述的方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括处理器和存储有程序代码的存储介质,所述程序代码当被处理器执行时,实现如上所述的方法。
根据本发明的推荐服务调用方法、介质、装置和计算设备,可以提供一个能够实现资源隔离、超时降级、实时监控、实时预警的系统框架,从而有利于实现系统的高并发和可靠性,为用户带来更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1为根据本发明一个实施方式的推荐服务调用方法的流程示意图;
图2为根据本发明另一个实施方式的推荐服务调用方法的流程示意图;
图3为根据本发明一个实施方式的计算机可读存储介质的示意图;
图4为根据本发明一个实施方式的推荐服务调用装置的结构示意图;
图5为根据本发明一个实施方式的计算设备的示意图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种推荐服务调用的方法、装置、介质和计算设备。
在本文中,需要理解的是,这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,接口维度的资源隔离可以保证不同场景的推荐服务互相隔离,某个场景的压力过大不会影响整个系统的资源分配和服务提供,保证了系统的高并发;失败接口降级在请求异常情况下仍然可以返回备份方案,保证了系统的可靠性;熔断机制在大量降级的情况下直接返回备份方案,大大减轻了系统在高并发下的压力。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
本发明的推荐服务调用方法、装置、介质和计算设备在系统访问量大的场景能够实现系统调用的资源隔离,有利于避免服务被拖垮的风险,在高并发访问的情况下有利于保证系统的可靠性,并且服务调用异常时依然能够有数据返回,有利于提高用户体验。
示例性方法
下面结合图1的应用场景,参考图1-2来描述根据本发明示例性实施方式的推荐服务调用方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图1所示为根据本发明一个实施方式的推荐服务调用方法的流程示意图,包括以下步骤:
S101:接收服务调用请求;
S102:基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;
S103:根据调用结果返回调用内容。
为每个接口创建线程池,可选的,可以根据该接口被调用的频率确定线程池中的线程数,当该接口被调用的频率较高时可以为该接口分配较多的线程数,当该接口被调用的频率较低时可以为该接口分配较少的线程数;可选的,也可以根据该接口被调用失败的几率确定线程池中的线程数,当该接口被调用失败的几率较高时可以为该接口分配较多的线程数,当该接口被调用的频率较低时可以为该接口分配较少的线程数。具体为每个接口分配线程数的多少可以根据具体需要进行确定,在此不作限定,本领域技术人员可以根据需要进行选择。
作为一种可选的实施方式,接收服务调用请求,基于被线程池隔离的接口调用与服务调用请求对应的推荐服务,不同接口的调用落到不同的线程池中从而实现了接口维度的资源隔离,根据调用结果返回调用内容,其中调用结果可以包括但不限于调用超时、调用异常、调用被拒绝以及正常等情况。
作为第一个具体实施例,当调用结果为正常时,可以将推荐方案作为调用内容返回,并将该推荐方案保存为备份方案。其中,能够正常调用推荐方案的情况的调用结果为正常,对应每一推荐方案保存一条备份方案,保存备份方案的条数可以根据需要或系统内存进行设定,例如当调用该项推荐服务的接口异常的几率较高或者访问量巨大的情况下可以保存较多条数的备份方案,当调用该推荐服务的接口一般不会出现问题或者访问量较小的情况下可以保存较少条数的备份方案,在此不作限定。可以将备份方案保存在系统的内存中。
作为第二个具体实施例,当调用结果为失败时,可以将备份方案作为调用内容返回,并对应每个失败的调用结果记录失败原因。其中,可以将调用超时、调用异常、调用被拒绝等不能够正常调用推荐服务的情况视作调用失败,直接将备份方案作为调用内容返回的同时,记录当次调用失败的原因,并对所有调用失败的情况进行分类存储。在调用失败的情况下依然保证了有数据返回,通过降级保证了系统调用的可用性。
作为第三个具体实施例,当调用结果为失败的次数达到第一预定条件时,可以自动打开熔断开关,并且在熔断开关打开期间将备份方案作为调用内容返回。其中,调用结果为失败的次数达到第一预定条件可以为调用失败的次数大于或等于失败次数阈值,该失败次数阈值可以根据需要或具体情况进行设定,调用结果为失败的次数达到第一预定条件也可以为调用失败的次数占总调用次数的比例大于或等于失败比例阈值,该失败比例阈值可以根据需要或具体情况进行设定,在此不作限定。自动打开熔断开关之后停止对该推荐服务的调用,在此后对该推荐服务调用时直接将备份方案作为调用内容返回。
打开熔断开关期间,对该推荐服务的调用进入睡眠状态,期间可以直接将备份方案作为调用内容返回,当打开熔断开关的时间达到预定时间阈值时,可以自动闭合熔断开关,当接收到调用请求时对该推荐服务进行正常的调用程序,将推荐方案作为调用内容返回。
当打开熔断开关的时间达到预定时间阈值时,可以初步闭合熔断开关,基于被线程池隔离的接口对与服务调用请求对应的推荐服务进行预定次数的调用,当调用正常的次数达到第二预定条件时,将推荐方案作为调用内容返回,正式闭合熔断开关,当调用正常的次数未达到第二预定条件时,继续打开熔断开关,并在熔断开关打开期间将备份方案作为调用内容返回。其中,第二预定条件可以为正常次数阈值或正常比例阈值,当调用正常的次数大于或等于正常次数阈值时或调用正常的次数占总调用次数的比例大于或等于正常比例阈值时,正式闭合熔断开关,当调用正常的次数小于正常次数阈值或调用正常的次数占总调用次数的比例小于正常比例阈值时,继续打开熔断开关,将备份方案作为调用内容返回。
同时,在熔断开关打开时,基于调用结果向管理员发出报警通知,可以将导致本次熔断开关打开的原因以及其中每次调用推荐服务的具体数据同时附在报警通知中发送给管理员,具体发送的信息可以根据具体需要进行设定。
如图2所示为根据本发明另一个实施方式的推荐服务调用方法的流程示意图,具体包括以下步骤:
S111:接收服务调用请求;
S112:基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;
S113:监控并记录所述调用结果;
S114:根据调用结果返回调用内容。
为每个接口创建线程池,可选的,可以根据该接口被调用的频率确定线程池中的线程数,当该接口被调用的频率较高时可以为该接口分配较多的线程数,当该接口被调用的频率较低时可以为该接口分配较少的线程数;可选的,也可以根据该接口被调用失败的几率确定线程池中的线程数,当该接口被调用失败的几率较高时可以为该接口分配较多的线程数,当该接口被调用的频率较低时可以为该接口分配较少的线程数。具体为每个接口分配线程数的多少可以根据具体需要进行确定,在此不作限定,本领域技术人员可以根据需要进行选择。
作为一种可选的实施方式,接收服务调用请求,基于被线程池隔离的接口调用与服务调用请求对应的推荐服务,不同接口的调用落到不同的线程池中从而实现了接口维度的资源隔离,监控并记录调用结果,可以将调用结果发送到监控终端进行可视化显示以便于监控,同时对调用结果进行存储以备后续查看,根据调用结果返回调用内容,其中调用结果可以包括但不限于调用超时、调用异常、调用被拒绝以及正常等情况。
作为第一个具体实施例,当调用结果为正常时,将推荐方案作为调用内容返回,并将该推荐方案保存为备份方案。其中,能够正常调用推荐方案的情况的调用结果为正常,对应每一推荐方案保存一条备份方案,保存备份方案的条数可以根据需要或系统内存进行设定,例如当调用该项推荐服务的接口异常的几率较高或者访问量巨大的情况下可以保存较多条数的备份方案,当调用该推荐服务的接口一般不会出现问题或者访问量较小的情况下可以保存较少条数的备份方案,在此不作限定。可以将备份方案保存在系统的内存中。
作为第二个具体实施例,当调用结果为失败时,将备份方案作为调用内容返回,并对应每个失败的调用结果记录失败原因。其中,可以将调用超时、调用异常、调用被拒绝等不能够正常调用推荐服务的情况视作调用失败,直接将备份方案作为调用内容返回的同时,记录当次调用失败的原因,并对所有调用失败的情况进行分类存储。
作为第三个具体实施例,当调用结果为失败的次数达到第一预定条件时,自动打开熔断开关,并且在熔断开关打开期间将备份方案作为调用内容返回。其中,调用结果为失败的次数达到第一预定条件可以为调用失败的次数达到失败次数阈值,该失败次数阈值可以根据需要或具体情况进行设定,调用结果为失败的次数达到第一预定条件也可以为调用失败的次数占总调用次数的比例达到失败比例阈值,该失败比例阈值可以根据需要或具体情况进行设定,在此不作限定。自动打开熔断开关之后停止对该推荐服务的调用,在此后对该推荐服务调用时直接将备份方案作为调用内容返回。
打开熔断开关期间,对该推荐服务的调用进入睡眠状态,期间直接将备份方案作为调用内容返回,当打开熔断开关的时间达到预定时间阈值时,自动闭合熔断开关,当接收到调用请求时对该推荐服务进行正常的调用程序,将推荐方案作为调用内容返回。
当打开熔断开关的时间达到预定时间阈值时,初步闭合熔断开关,基于被线程池隔离的接口对与服务调用请求对应的推荐服务进行预定次数的调用,当调用正常的次数达到第二预定条件时,将推荐方案作为调用内容返回,正式闭合熔断开关,当调用正常的次数未达到第二预定条件时,继续打开熔断开关,并在熔断开关打开期间将备份方案作为调用内容返回。其中,第二预定条件可以为正常次数阈值或正常比例阈值,当调用正常的次数大于或等于正常次数阈值时或调用正常的次数占总调用次数的比例大于或等于正常比例阈值时,正式闭合熔断开关,当调用正常的次数小于正常次数阈值或调用正常的次数占总调用次数的比例小于正常比例阈值时,继续打开熔断开关,将备份方案作为调用内容返回。
在调用失败或熔断开关打开期间,将备份方案作为调用内容返回,通过降级的方式保证了对于用户的调用有内容返回,相比于关闭推荐服务能够提供给用户更好的使用体验。
同时,在熔断开关打开时,基于调用结果向管理员发出报警通知,可以将导致本次熔断开关打开的原因以及其中每次调用推荐服务的具体数据同时附在报警通知中发送给管理员,具体发送的信息可以根据具体需要进行设定。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图3对本发明示例性实施方式的推荐服务调用方法的介质进行介绍。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种存储有程序产品的计算机可读存储介质,当程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的推荐服务调用方法的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。
如图3所示,描述了根据本发明的实施方式的推荐服务调用方法的程序产品300。其可以采用便携式紧凑盘只读存储器(CD-ROM),并且包括程序代码,可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——例如Java、C++等,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网或广域网——连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图3对本发明示例性实施方式的推荐服务调用装置进行介绍。
如图4所示为根据本发明一个实施方式的推荐服务调用装置的结构示意图,具体包括:
请求接收模块,被配置为接收服务调用请求;
调用模块,被配置为基于被线程池隔离的接口调用与服务调用请求对应的推荐服务,其中,根据接口被调用的频率以及调用失败的几率确定线程池中的线程数;
数据返回模块,被配置为根据调用结果返回调用内容。
作为一种可选的实施方式,还可以包括调用监控模块,被配置为:监控并记录调用结果。
可选的,数据返回模块还可以被配置为:当调用结果为正常时,将推荐方案作为调用内容返回,并将推荐方案保存为备份方案。
可选的,数据返回模块还可以被配置为:当调用结果为失败时,将备份方案作为调用内容返回,并对应每个失败的调用结果记录失败原因。
可选的,数据返回模块还可以包括系统保护单元,系统保护单元被配置为:当调用结果为失败的次数达到第一预定条件时,自动打开熔断开关,并且在熔断开关打开期间将备份方案作为调用内容返回。
可选的,系统保护单元还可以被配置为:当打开熔断开关的时间达到预定时间阈值时,自动闭合熔断开关。
可选的,系统保护单元还可以被配置为:当打开熔断开关的时间达到预定时间阈值时,初步闭合熔断开关,基于被线程池隔离的接口对与服务调用请求对应的推荐服务进行预定次数的调用,当调用正常的次数达到第二预定条件时,将推荐方案作为调用内容返回,正式闭合熔断开关,当调用正常的次数未达到第二预定条件时,继续打开熔断开关,并在熔断开关打开期间将备份方案作为调用内容返回。
可选的,还可以包括报警模块,被配置为:当熔断开关打开时,基于调用结果向管理员发出报警通知。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图5对本发明示例性实施方式的、用于
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的推荐服务调用方法的计算设备可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的推荐服务调用方法的步骤。
下面参考图5来描述根据本发明的这种实施方式的推荐服务调用方法的计算设备500。图5显示的推荐服务调用方法的计算设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,推荐服务调用方法的计算设备500以通用计算设备的形式表现。推荐服务调用方法的计算设备500的组件可以包括但不限于:上述至少一个处理器501、上述至少一个存储器502、连接不同系统组件(包括处理器501和存储器502)的总线503。
总线503表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储器5022,还可以进一步包括只读存储器5023。
存储器502还可以包括具有一组(至少一个)程序模块5024的程序/实用工具5025,这样的程序模块包括但不限于:操作系统、一个或多个应用程序、其它程序模块以及程序数据,这些实例中的每一个或者某种组合中可能包括网络环境的实现。
推荐服务调用方法的计算设备500也可以与一个或多个外部设备504(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或多个使得用户能与该推荐服务调用方法的计算设备500交互的设备通信,和/或与使得该推荐服务调用方法的计算设备500与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,推荐服务调用方法的计算设备还可以通过网络适配器506与一个或多个网路(例如局域网,广域网等)通信。如图所示,网络适配器506通过总线与推荐服务调用方法的计算设备500的其他模块通信。应当明白,尽管图中未示出,可以结合推荐服务调用方法的计算设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了推荐服务调用装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
根据以上实施方式的说明,本申请提供了如下技术方案:
方案1.一种推荐服务调用方法,包括以下步骤:
接收服务调用请求;
基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;
根据调用结果返回调用内容。
方案2.根据方案1所述的方法,其中,在所述基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务之后还包括以下步骤:
监控并记录所述调用结果。
方案3.根据方案1或2所述的方法,其中,所述根据调用结果返回调用内容包括:
当所述调用结果为正常时,将推荐方案作为所述调用内容返回,并将所述推荐方案保存为备份方案。
方案4.根据方案1或2所述的方法,其中,所述根据调用结果返回调用内容包括:
当所述调用结果为失败时,将备份方案作为所述调用内容返回,并对应每个失败的所述调用结果记录失败原因。
方案5.根据方案1或2所述的方法,其中,所述根据调用结果返回调用内容包括:
当所述调用结果为失败的次数达到第一预定条件时,自动打开熔断开关,并且在所述熔断开关打开期间将备份方案作为所述调用内容返回。
方案6.根据方案5所述的方法,其中,还包括以下步骤:
当打开所述熔断开关的时间达到预定时间阈值时,自动闭合所述熔断开关。
方案7.根据方案5所述的方法,其中,还包括以下步骤:
当打开所述熔断开关的时间达到预定时间阈值时,初步闭合所述熔断开关,基于被线程池隔离的接口对与所述服务调用请求对应的推荐服务进行预定次数的调用,当调用正常的次数达到第二预定条件时,将推荐方案作为所述调用内容返回,正式闭合所述熔断开关,当调用正常的次数未达到第二预定条件时,继续打开熔断开关,并在所述熔断开关打开期间将所述备份方案作为所述调用内容返回。
方案8.根据方案5所述的方法,其中,还包括以下步骤:
当所述熔断开关打开时,基于所述调用结果向管理员发出报警通知。
方案9.一种推荐服务调用装置,包括:
请求接收模块,被配置为接收服务调用请求;
调用模块,被配置为基于被线程池隔离的接口调用与所述服务调用请求对应的推荐服务,其中,根据所述接口被调用的频率以及调用失败的几率确定所述线程池中的线程数;
数据返回模块,被配置为根据调用结果返回调用内容。
方案10.根据方案10所述的装置,其中,还包括调用监控模块,被配置为:
监控并记录所述调用结果。
方案11.根据方案9或10所述的装置,其中,所述数据返回模块还被配置为:
当所述调用结果为正常时,将推荐方案作为所述调用内容返回,并将所述推荐方案保存为备份方案。
方案12.根据方案9或10所述的装置,其中,所述数据返回模块还被配置为:
当所述调用结果为失败时,将备份方案作为所述调用内容返回,并对应每个失败的所述调用结果记录失败原因。
方案13.根据方案9或10所述的装置,其中,所述数据返回模块还包括系统保护单元,所述系统保护单元被配置为:
当所述调用结果为失败的次数达到第一预定条件时,自动打开熔断开关,并且在所述熔断开关打开期间将备份方案作为所述调用内容返回。
方案14.根据方案13所述的装置,其中,所述系统保护单元还被配置为:
当打开所述熔断开关的时间达到预定时间阈值时,自动闭合所述熔断开关。
方案15.根据方案13所述的装置,其中,所述系统保护单元还被配置为:
当打开所述熔断开关的时间达到预定时间阈值时,初步闭合所述熔断开关,基于被线程池隔离的接口对与所述服务调用请求对应的推荐服务进行预定次数的调用,当调用正常的次数达到第二预定条件时,将推荐方案作为所述调用内容返回,正式闭合所述熔断开关,当调用正常的次数未达到第二预定条件时,继续打开熔断开关,并在所述熔断开关打开期间将所述备份方案作为所述调用内容返回。
方案16.根据方案13所述的装置,其中,还包括报警模块,被配置为:
当所述熔断开关打开时,基于所述调用结果向管理员发出报警通知。
方案17.一种计算机可读存储介质,存储有程序代码,所述程序代码当被处理器执行时,实现如方案1-8之一所述的方法。
方案18.一种计算设备,包括处理器和存储有程序代码的存储介质,所述程序代码当被处理器执行时,实现如方案1-8之一所述的方法。