本发明涉及通信技术领域,尤其涉及一种服务降级方法、装置、设备及存储介质。
背景技术:
在生产环境中保证系统的稳定运行是第一要务,当出现服务器压力剧增或服务异常时,为了保证系统的正常运行就必须考虑服务的降级处理。比如,当获取促销活动信息的接口出现异常时,可以采用缓存的数据,这就是一种服务降级,保证了系统的可用性,提高用户体验。
目前服务降级的方式通常采用屏蔽降级,业务代码中设置开关,当服务不可用时手工关闭服务的调用。现有的服务降级方法在服务不可用时直接关闭服务,而在服务恢复时,不能及时自动启用服务,导致用户在服务降级后无法使用服务,影响业务以及用户体验。
技术实现要素:
本发明提供一种服务降级方法、装置、设备及存储介质,以在服务降级后用户仍然能够获取服务数据,且与真实数据基本一致,不影响业务以及用户体验。
本发明的第一方面是提供一种服务降级方法,包括:
通过服务网关向服务端请求服务数据;
监测所述服务端的服务是否可用;
若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元;
若所述服务不可用,则通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
本发明的第二方面是提供一种服务降级方法,包括:
接收服务请求,识别所述服务请求的来源;
若所述服务请求由服务探测器发送的,则根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后将所述服务数据推送到与所述服务对应的存储单元;
若所述服务请求由用户发送的,则根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
本发明的第三方面是提供一种服务降级装置,包括:
请求模块,用于通过服务网关向服务端请求服务数据;
处理模块,用于监测所述服务是否可用;
推送模块,用于若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元;
所述处理模块还用于,若所述服务不可用,则所述服务探测器通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
本发明的第四方面是提供一种服务降级装置,包括:
通信模块,用于接收服务请求;
处理模块,用于识别所述服务请求的来源;若所述服务请求由服务探测器根据预设轮询间隔时间发送的,则控制所述通信模块根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后由所述服务探测器通过所述通信模块将所述服务数据推送到与所述服务对应的存储单元上;若所述服务请求由用户发送的,则控制所述通信模块根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
本发明的第五方面是提供一种服务探测器,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
本发明的第六方面是提供一种服务网关,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第二方面所述的方法。
本发明的第七方面是提供一种计算机可读存储介质,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如第一方面所述的方法。
本发明的第八方面是提供一种计算机可读存储介质,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如第一方面所述的方法。
本发明提供的服务降级方法、装置、设备及存储介质,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的系统架构图;
图2为本发明实施例提供的服务降级方法流程图;
图3为本发明另一实施例提供的服务降级方法流程图;
图4为本发明实施例提供的服务降级装置的结构图;
图5为本发明另一实施例提供的服务降级装置的结构图;
图6为本发明实施例提供的服务探测器的结构图;
图7为本发明实施例提供的服务网关的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的服务降级方法,可以适用于图1所示的通信系统。如图1所示,所述通信系统包括服务探测器、服务网关、服务端、存储单元以及用户,此外还可包括配置单元和数据库,其连接关系如图1,需要说明的是,服务端可设置多个,分别提供不同的服务,每一服务可对应至少一个存储单元,图1中仅示出一个服务端和一个存储单元。其中,存储单元可以为cdn(contentdeliverynetwork,内容分发网络),cdn的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求;服务探测器可每隔预设时间通过服务网关向服务端发送请求获取服务数据,根据请求状态和返回的服务数据监测服务是否可用,若服务不可用则通知服务网关启动服务降级,而服务探测器在每次请求服务数据后若确定服务可用则将最新的服务数据通过服务网关推送到与服务对应的存储单元上;服务网关在接收到用户的服务请求后,若识别该服务已被降级,则直接向与服务对应的存储单元获取服务数据返回给用户,若服务未被降级则直接向该服务端获取服务数据。下面结合具体的实施例对服务降级过程进行详细的描述。
图2为本发明实施例提供的服务降级方法流程图。本实施例提供了一种服务降级方法,执行主体为服务探测器,该方法具体步骤如下:
s101、通过服务网关向服务端请求服务数据。。
在本实施例中,服务探测器每隔预设间隔时间通过服务网关向服务端发出服务请求,并接收返回的服务数据。进一步的,服务探测器可根据预设轮询间隔时间通过服务网关向服务端请求服务数据,从而可以实现对与服务对应的存储单元中的服务数据的更新。需要说明的是,不论服务是否降级,服务探测器均可以访问服务端获取服务数据,以实现在服务降级后判断服务是否可以恢复。此外,若存在多个服务,则服务探测器可依次向各服务端发送请求。
s102、监测所述服务端的服务是否可用。
在本实施例中,由服务探测器监测服务是否可用,具体的,可以在每次服务探测器请求服务时接收接口的返回码,其中返回码为预先设定,例如当服务可用则返回0,当服务不可用(例如服务繁忙)则返回-1,服务探测器通过识别返回码,从而可以判断服务是否可用。此外,也可预先设定数据范围,当每次服务探测器获取到服务数据后进行解析,若解析结果超出该数据范围,则判断服务不可用,例如预先设定商品价格范围,当解析出服务数据中的商品价格超出了商品价格范围,则说明服务数据错误,进而说明服务不可用。由于服务探测器可以是周期性发送服务请求,因此本实施例中对于服务是否可用的判断也相应的可以是周期性进行的。当然本实施例中监测服务是否可用并不限于上述所举示例,采用其他监测方法亦可,此处不再赘述。其中,如果若服务探测器不通过向服务端请求服务数据的方式监测服务是否可用,则不限定s101和s102的先后顺序。
s103、若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元。
在本实施例中,服务探测器在确认服务可用后将服务数据通过服务网关推送给与服务对应的存储单元,以实现周期性的更新存储单元中的服务数据,当然本实施例中也可由服务探测器或服务网关控制服务直接将服务数据推送到服务对应的存储单元上。而在服务探测器确认服务不可用时,则可不进行存储单元中的服务数据的更新,以避免将错误的服务数据上传到存储单元中(例如超出预设数据范围的服务数据),当然若能够判断服务不可用时服务探测器获取到的服务数据为正确数据,也可将服务数据推送到存储单元中,能够实现在服务降级后仍能够更新存储单元中的服务数据。其中,存储单元可以为内容分发网络cdn。
s104、若所述服务不可用,则通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
在本实施例中,当服务探测器判断服务不可用,则通知服务网关对该服务开启服务降级模式,此后用户如有服务请求,则从与服务对应的存储单元获取服务数据。其中系统中可能并不止一项服务,服务降级仅针对不可用的服务,用户获取服务数据也是从该不可用的服务对应的存储单元获取服务数据。
本实施例提供的服务降级方法,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
在上述实施例的基础上,s103所述的若所述服务不可用,则所述服务探测器通知所述服务网关对所述服务开启服务降级模式,具体可以包括:
若所述服务不可用,则所述服务探测器向所述服务网关发送第一服务状态标识修改指令,以使所述服务网关根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用。
进一步的,若所述服务可用,则所述服务探测器向所述服务网关发送第二服务状态标识修改指令,以使所述服务网关根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
在本实施例中,当判断某一服务不可用时,则服务探测器控制服务网关将该服务的服务状态标识修改为不可用,当用户请求该服务时,服务网关首先识别该服务的服务状态标识,若服务状态标识为可用,则服务网关根据服务请求从服务获取服务数据返回给用户,若服务状态标识为不可用,则服务网关根据服务请求从该服务对应的存储单元获取服务数据返回给用户。本实施例通过在服务网关处配置服务状态标识,从而实现服务降级的启动和关闭。
在上述实施例中,s102所述服务探测器监测所述服务是否可用,具体可包括:
所述服务探测器在通过所述服务网关请求服务后,接收所述服务网关发送的返回码,并将所述返回码与预设返回码进行比对,若与所述预设返回码中的服务异常返回码相匹配,则确定所述服务不可用;和/或
所述服务探测器解析所述返回的服务数据,并判断解析结果是否满足预设数据范围,若不满足,则确定所述服务不可用。
在本实施例中,可通过返回码和/或服务数据解析结果判断服务是否可用,其中,预先约定预设返回码,例如当服务可用则返回0,当服务异常时(例如服务繁忙)则返回-1,在每次服务探测器请求服务时接收接口的返回码,服务探测器通过识别返回码,从而可以判断服务是否可用。也可预先约定预设数据范围,当每次服务探测器获取到服务数据后进行解析,若解析结果超出该数据范围,则判断服务不可用。
进一步的,可以首先以返回码判断服务是否可用,若返回码与服务异常返回码相匹配,则不进行服务数据解析,直接确定服务不可用;当返回码与服务异常返回码不匹配,则进一步对服务数据进行解析,判断解析结果是否满足预设数据范围,如不满足则确定服务不可用,若满足则确定服务可用。
在上述实施例的基础上,所述方法还可包括:
所述服务探测器接收配置单元发送的服务降级策略,所述服务降级策略包括所述预设间隔时间和/或所述预设返回码和/或所述预设数据范围。
本实施例中,开发工程师或者管理人员可个性化配置服务降级策略,例如根据需求在配置单元设置或修改预设间隔时间和/或预设返回码和/或预设数据范围,在配置单元配置好服务降级策略后,将服务降级策略发送给服务探测器,进而根据服务降级策略进行服务降级。此外开发工程师或者管理人员也可强制服务降级,通过配置单元向服务探测器发送强制服务降级指令,服务探测器根据所述强制服务降级指令通知服务网关对服务开启服务降级模式。
本实施例提供的服务降级方法,通过服务探测器在服务可用时更新与服务对应的存储单元中的服务数据,使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。此外,还能够实现自动开启或关闭服务降级,不需要人工操作;同时不需要与业务耦合,灵活性和可扩展性较好。
图3为本发明实施例提供的服务降级方法流程图。本实施例提供了一种服务降级方法,执行主体为服务网关,该方法具体步骤如下:
s201、接收服务请求,识别所述服务请求的来源。
在本实施例中,由于服务探测器不论服务是否降级均可以访问服务获取服务数据,而用户在服务降级后只能从存储单元获取服务数据,因此服务网关需要识别服务请求的来源是服务探测器还是用户。其中,存储单元可以为内容分发网络cdn。
s202、若所述服务请求由服务探测器根据预设轮询间隔时间发送的,则所述服务网关根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后将所述服务数据由所述服务探测器通过所述服务网关推送到与所述服务对应的cdn上存储单元。
在本实施例中,服务探测器通过服务网关向服务端发出服务请求,并接收返回的服务数据,在服务探测器确定服务端的服务可用时将服务数据通过服务网关推送给与服务对应的存储单元,以实现更新存储单元中的服务数据。当然也可由服务探测器或服务网关控制服务直接将服务数据推送到对应的存储单元上。其中,服务探测器可每隔预设间隔时间通过服务网关向服务端请求服务数据,从而实现对存储单元中的服务数据进行周期性的更新。而在服务探测器确认服务不可用时,则可不向服务网关发送推送指令进行存储单元中的服务数据的更新,以避免将错误的服务数据上传到存储单元中(例如超出预设数据范围的服务数据),当然若能够判断服务不可用时服务探测器获取到的服务数据为正确数据,也可向服务网关发送推送指令将服务数据推送到存储单元中,能够实现在服务降级后仍能够更新存储单元中的服务数据。
s203、若所述服务请求由用户发送的,则根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
在本实施例中,当用户发送服务请求时,如果此时未启动服务降级模式,则向所述服务请求服务数据返回给用户,如果此时已启动服务降级模式,则向所述服务对应的存储单元请求服务数据返回给用户。
在本实施例中,s202和s203没有先后顺序,也不发生冲突,例如同一时刻服务网关收到服务探测器和用户发送的服务请求,则分别执行s202和s203。
本实施例提供的服务降级方法,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
在上述实施例的基础上,所述方法还可包括:
当所述服务网关接收到所述服务探测器在判断所述服务不可用后发送的第一服务状态标识修改指令,根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用;
当所述服务网关接收到所述服务探测器在判断所述服务可用后发送的第二服务状态标识修改指令,根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
在本实施例中,当服务探测器判断某一服务不可用时,则服务探测器控制服务网关将该服务的服务状态标识修改为不可用,当用户请求该服务时,服务网关首先识别该服务的服务状态标识,若服务状态标识为可用,则服务网关根据服务请求从服务获取服务数据返回给用户,若服务状态标识为不可用,则服务网关根据服务请求从该服务对应的存储单元获取服务数据返回给用户。本实施例通过在服务网关处配置服务状态标识,从而实现服务降级的启动和关闭。
也即s203所述服务网关根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户,具体包括:
所述服务网关识别所述服务的服务状态标识;
若所述服务状态标识为可用,则所述服务网关根据所述服务请求从所述服务端获取服务数据返回给用户;
若所述服务状态标识为不可用,则所述服务网关根据所述服务请求从与所述服务对应的存储单元获取服务数据返回给用户。
本实施例提供的服务降级方法,通过服务探测器在服务可用时更新与服务对应的存储单元中的服务数据,使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。此外,还能够实现自动开启或关闭服务降级,不需要人工操作;同时不需要与业务耦合,灵活性和可扩展性较好。
在上述实施例的基础上,本实施例提供一种服务降级方法,该方法具体步骤如下:
s301、服务探测器根据预设间隔时间通过服务网关向服务端请求服务数据。
s302、所述服务探测器在通过所述服务网关请求服务后,接收所述服务网关发送的返回码,并将所述返回码与预设返回码进行比对,若与所述预设返回码中的服务异常返回码相匹配,判断所述服务是否可用;和/或所述服务探测器解析所述返回的服务数据,并判断解析结果是否满足预设数据范围,从而判断所述服务是否可用。
若所述服务可用,则执行s303;若所述服务不可用,则执行s304;
s303、若所述服务可用,所述服务探测器将所述服务数据推送到与所述服务对应的存储单元;并且
所述服务探测器向所述服务网关发送第二服务状态标识修改指令,以使所述服务网关根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
s304、若所述服务不可用,所述服务探测器将向所述服务网关发送第一服务状态标识修改指令,以使所述服务网关根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用。
对于用户请求服务数据时,则具体步骤如下:
s311、用户通过用户端向服务网关发送服务请求。
s312、服务网关接收服务请求后,识别所述服务请求由用户发送,则识别所述服务的服务状态标识。
s313、若所述服务状态标识为可用,则所述服务网关根据所述服务请求从所述服务端获取服务数据返回给用户。
s314、若所述服务状态标识为不可用,则所述服务网关根据所述服务请求从与所述服务对应的存储单元获取服务数据返回给用户。
本实施例提供的服务降级方法,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
图4为本发明实施例提供的服务降级装置的结构图。该服务降级装置具体可以是上述实施例中的服务探测器。本实施例提供的服务降级装置可以执行上述服务探测器侧的服务降级方法实施例提供的处理流程,如图4所示,所述服务降级装置40包括请求模块41、推送模块42及处理模块43。
其中,请求模块41,用于通过服务网关向服务端请求服务数据;
处理模块43,用于监测所述服务是否可用;
推送模块42,用于若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元;
所述处理模块43还用于,若所述服务不可用,则所述服务探测器通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
进一步的,所述处理模块43用于:
若所述服务不可用,则向所述服务网关发送第一服务状态标识修改指令,以使所述服务网关根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用。
进一步的,所述处理模块43还用于:
若所述服务可用,则向所述服务网关发送第二服务状态标识修改指令,以使所述服务网关根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
进一步的,所述处理模块43具体用于:
在通过所述服务网关请求服务后,接收所述服务网关发送的返回码,并将所述返回码与预设返回码进行比对,若与所述预设返回码中的服务异常返回码相匹配,则确定所述服务不可用;和/或
解析所述返回的服务数据,并判断解析结果是否满足预设数据范围,若不满足,则确定所述服务不可用。
进一步的,所述装置还包括:
接收模块,用于接收配置单元发送的服务降级策略,所述服务降级策略包括所述预设间隔时间和/或所述预设返回码和/或所述预设数据范围。
进一步的,所述请求模块41具体用于,根据预设轮询间隔时间通过服务网关向服务端请求服务数据。
进一步的,所述存储单元为内容分发网络cdn。
本发明实施例提供的服务降级装置可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。
本发明实施例提供的服务降级装置,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
图5为本发明实施例提供的服务降级装置的结构图。该服务降级装置具体可以是上述实施例中的网关。本实施例提供的服务降级装置可以执行上述服务网关侧的服务降级方法实施例提供的处理流程,如图5所示,所述服务降级装置50包括通信模块51及处理模块52。
其中,通信模块51,用于接收服务请求;
处理模块52,用于识别所述服务请求的来源;若所述服务请求由服务探测器发送的,则控制所述通信模块51根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后通过所述通信模块51将所述服务数据推送到与所述服务对应的存储单元上;若所述服务请求由用户发送的,则控制所述通信模块51根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
进一步的,所述装置还包括配置模块,用于:
当接收到所述服务探测器在判断所述服务不可用后发送的第一服务状态标识修改指令,根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用;
当接收到所述服务探测器在判断所述服务可用后发送的第二服务状态标识修改指令,根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
进一步的,所述处理模块52具体用于:
识别所述服务的服务状态标识;
若所述服务状态标识为可用,则控制所述通信模块根据所述服务请求从所述服务端获取服务数据返回给用户;
若所述服务状态标识为不可用,则控制所述通信模块根据所述服务请求从与所述服务对应的存储单元获取服务数据返回给用户。
进一步的,所述存储单元为内容分发网络cdn。
本发明实施例提供的服务降级装置可以具体用于执行上述图3所提供的方法实施例,具体功能此处不再赘述。
本发明实施例提供的服务降级装置,由服务探测器通过服务网关向服务端请求服务数据,并监测服务是否可用,若服务可用则将服务数据推送到与服务对应的存储单元;若服务不可用,则服务探测器通知服务网关对服务开启服务降级模式,用户通过服务网关向与服务对应的存储单元请求服务数据。由于存储单元中的服务数据是由服务探测器在服务可用时进行更新,因此使用户能够在服务降级后从存储单元中获取的服务数据与真实数据基本一致,实现对数据一致性要求不是特别高的读服务优雅降级,不影响业务以及用户体验。
图6为本发明实施例提供的服务探测器的结构示意图。本发明实施例提供的服务探测器可以执行服务探测器侧的服务降级方法实施例提供的处理流程,如图6所示,服务探测器60包括存储器61、处理器62、计算机程序和通讯接口63;其中,计算机程序存储在存储器61中,并被配置为由处理器62执行以上实施例所述的区块链对账方法。
图6所示实施例的服务探测器可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明实施例提供的服务网关的结构示意图。本发明实施例提供的服务网关可以执行服务网关侧的服务降级方法实施例提供的处理流程,如图7所示,服务网关70包括存储器71、处理器72、计算机程序和通讯接口73;其中,计算机程序存储在存储器71中,并被配置为由处理器72执行以上实施例所述的区块链对账方法。
图7所示实施例的服务网关可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的服务探测器侧的服务降级方法。
另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的服务网关侧的服务降级方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
1.一种服务降级方法,其特征在于,包括:
通过服务网关向服务端请求服务数据;
监测所述服务端的服务是否可用;
若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元;
若所述服务不可用,则通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
2.根据权利要求1所述的方法,其特征在于,若所述服务不可用,则通知所述服务网关对所述服务开启服务降级模式,包括:
若所述服务不可用,则向所述服务网关发送第一服务状态标识修改指令,以使所述服务网关根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述服务可用,则向所述服务网关发送第二服务状态标识修改指令,以使所述服务网关根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述监测所述服务是否可用,包括:
在通过所述服务网关请求服务后,接收所述服务网关发送的返回码,并将所述返回码与预设返回码进行比对,若与所述预设返回码中的服务异常返回码相匹配,则确定所述服务不可用;和/或
解析所述返回的服务数据,并判断解析结果是否满足预设数据范围,若不满足,则确定所述服务不可用。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收配置单元发送的服务降级策略,所述服务降级策略包括所述预设轮询间隔时间和/或所述预设返回码和/或所述预设数据范围。
6.根据权利要求1所述的方法,其特征在于,所述通过服务网关向服务端请求服务数据,包括:
根据预设轮询间隔时间通过服务网关向服务端请求服务数据。
7.根据权利要求1所述的方法,其特征在于,所述存储单元为内容分发网络cdn。
8.一种服务降级方法,其特征在于,包括:
接收服务请求,识别所述服务请求的来源;
若所述服务请求由服务探测器发送的,则根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后将所述服务数据推送到与所述服务对应的存储单元;
若所述服务请求由用户发送的,则根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
9.根据权利要求8所述的方法,其特征在于,还包括:
当接收到所述服务探测器在判断所述服务不可用后发送的第一服务状态标识修改指令,根据所述第一服务状态标识修改指令将所述服务的服务状态标识配置为不可用;
当接收到所述服务探测器在判断所述服务可用后发送的第二服务状态标识修改指令,根据所述第二服务状态标识修改指令将所述服务的服务状态标识配置为可用。
10.根据权利要求9所述的方法,其特征在于,所述根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户,包括:
识别所述服务的服务状态标识;
若所述服务状态标识为可用,则根据所述服务请求从所述服务端获取服务数据返回给用户;
若所述服务状态标识为不可用,则根据所述服务请求从与所述服务对应的存储单元获取服务数据返回给用户。
11.根据权利要求8-10任一项所述的方法,其特征在于,所述存储单元为内容分发网络cdn。
12.一种服务降级装置,其特征在于,包括:
请求模块,用于通过服务网关向服务端请求服务数据;
处理模块,用于监测所述服务是否可用;
推送模块,用于若所述服务可用,则将所述服务数据推送到与所述服务对应的存储单元;
所述处理模块还用于,若所述服务不可用,则所述服务探测器通知所述服务网关对所述服务开启服务降级模式,以使用户通过所述服务网关向与所述服务对应的存储单元请求服务数据。
13.一种服务降级装置,其特征在于,包括:
通信模块,用于接收服务请求;
处理模块,用于识别所述服务请求的来源;若所述服务请求由服务探测器发送的,则控制所述通信模块根据所述服务请求从服务端获取服务数据返回给所述服务探测器,并在接收到所述服务探测器在确定所述服务端的服务可用时发送的推送指令后通过所述通信模块将所述服务数据推送到与所述服务对应的存储单元上;若所述服务请求由用户发送的,则控制所述通信模块根据所述服务是否开启服务降级模式向所述服务或与所述服务对应的存储单元请求服务数据返回给用户。
14.一种服务探测器,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-7中任一项所述的方法。
15.一种服务网关,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求8-11中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;
所述计算机程序被处理器执行时实现如权利要求8-11中任一项所述的方法。
技术总结