CN113179188A - 服务降级动态实现方法、装置、计算机设备及存储介质 - Google Patents
服务降级动态实现方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113179188A CN113179188A CN202110575120.4A CN202110575120A CN113179188A CN 113179188 A CN113179188 A CN 113179188A CN 202110575120 A CN202110575120 A CN 202110575120A CN 113179188 A CN113179188 A CN 113179188A
- Authority
- CN
- China
- Prior art keywords
- degradation
- service
- logic
- preset
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5025—Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请实施例属于软件监控领域,涉及一种服务降级动态实现方法,包括:接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。本申请还提供一种服务降级动态实现装置、计算机设备及存储介质。
Description
技术领域
本申请涉及软件监控技术领域,尤其涉及服务降级动态实现方法、装置、计算机设备及存储介质。
背景技术
微服务架构是一种新兴的软件架构风格,通过开发一些微小服务的方式构成完整的应用***。服务降级,是服务器压力增加的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。当前的远程调用框架dubbo(开源分布式服务框架),或者微服务治理框架Hystrix都提供了对应的服务降级逻辑,旨在服务调用出现问题的时候,去调用降级的方法。现有的降级逻辑通常通过硬编码的方式包含在核心业务代码中,不能动态的去适配业务的需求,当需要变更降级逻辑时,需要进行业务代码编写、编译和版本发布的整个过程,耗时长。
发明内容
本申请实施例的目的在于提出一种服务降级动态实现方法、装置、计算机设备及存储介质,以解决服务降级逻辑动态变更耗时长的问题。
为了解决上述技术问题,本申请实施例提供一种服务降级动态实现方法,采用了如下所述的技术方案:
接收服务降级消息;
响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;
调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;
运行所述降级类,实现服务降级。
进一步的,在所述接收服务降级消息的步骤中还包括:
接收服务请求目标的返回数据;
解析所述返回数据,获得所述请求目标的状态参数;
将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息。
进一步的,所述预设的服务降级条件包含N条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系,在将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息的步骤中包括:
将所述状态参数与预设的服务降级条件比较,获得与所述状态参数相匹配的服务降级规则;
解析服务降级规则中的降级逻辑参数,将所述降级逻辑参数写入服务降级消息;
触发包含所述降级逻辑参数的服务降级消息。
进一步的,所述服务降级消息中包含接口信息,所述响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑的步骤具体包括:
根据所述接口信息,从所述降级容器中获取与所述接口信息相对应的降级逻辑。
进一步的,在所述响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑的步骤之前还包括:
接收预设的降级逻辑配置中心发送的配置变更通知;
响应所述配置变更通知,调用同步线程,将所述降级逻辑配置中心的配置变更同步到所述降级容器。
进一步的,所述配置变更通知中包含更新的降级逻辑对应的接口,在所述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中还包括:
解析所述配置变更通知,获得所述更新的降级逻辑对应的接口;
调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
进一步的,所述配置变更通知中还包含更新的降级逻辑的更新版本信息,在所述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中还包括:
解析所述配置变更通知,获得所述更新的降级逻辑的更新版本信息;
根据所述接口,读取所述降级容器中与所述接口对应的降级逻辑的当前版本信息;
将所述更新版本信息与所述当前版本信息比较,当两者不一致时,调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
为了解决上述技术问题,本申请实施例还提供一种服务降级动态实现装置,采用了如下所述的技术方案:
接收模块,用于接收服务降级消息;
获取模块,用于响应所述服务降级指令,从预设的降级插件中的降级容器中获取降级逻辑;
编译模块,用于调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;
运行模块,用于运行所述降级类,实现服务降级。
进一步的,所述接收模块中还包括:
第一接收子模块,用于接收服务请求目标的返回数据;
第一解析子模块,用于解析所述返回数据,获得所述请求目标的状态参数;
第一触发子模块,用于将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息。
进一步的,所述预设的服务降级条件包含N条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系,所述第一触发子模块包括:
第一比较子单元,用于将所述状态参数与预设的服务降级条件比较,获得与所述状态参数相匹配的服务降级规则;
第一解析子单元,用于解析服务降级规则中的降级逻辑参数,将所述降级逻辑参数写入服务降级消息;
第一触发子单元,用于触发包含所述降级逻辑参数的服务降级消息。
进一步的,所述服务降级消息中包含接口信息,所述获取模块中包括:
第一获取子模块,用于根据所述接口信息,从所述降级容器中获取与所述接口信息相对应的降级逻辑。
进一步的,所述服务降级动态实现装置还包括:
第二接收子模块,用于接收预设的降级逻辑配置中心发送的配置变更通知;
第一同步子模块,用于响应所述配置变更通知,调用同步线程,将所述降级逻辑配置中心的配置变更同步到所述降级容器。
进一步的,所述第二接收子模块还包括:
第二解析子单元,用于解析所述配置变更通知,获得所述更新的降级逻辑对应的接口;
第一同步子单元,用于调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
进一步的,所述配置变更通知中还包含更新的降级逻辑的更新版本信息,所述第二接收子模块还包括:
第三解析子单元,用于解析所述配置变更通知,获得所述更新的降级逻辑的更新版本信息;
第一读取子单元,用于根据所述接口,读取所述降级容器中与所述接口对应的降级逻辑的当前版本信息;
第二同步子单元,用于将所述更新版本信息与所述当前版本信息比较,当两者不一致时,调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,处理器执行计算机可读指令时实现如上述服务降级动态实现方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时实现如上述服务降级动态实现方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:通过接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2根据本申请的服务降级动态实现方法的一个实施例的流程图;
图3是根据本申请的服务降级动态实现装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving PictureExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的服务降级动态实现方法一般由服务器/终 端设备执行,相应地,服务降级动态实现装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的服务降级动态实现方法的一个实施例的流程图。所述的服务降级动态实现方法,包括以下步骤:
步骤S201,接收服务降级消息。
在本实施例中,服务降级动态实现方法运行于其上的电子设备(例如图1所示的服 务器/终端设备)可以通过有线连接方式或者无线连接方式接收服务降级消息。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
服务降级,是服务器压力增加的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。当服务调用其他目标,目标返回数据异常时,当前服务被触发服务降级。这里的服务降级消息指接收到目标返回数据异常时,根据返回数据包含的参数触发的对当前服务进行服务降级的消息。
服务降级的方式包括:页面拒绝服务(即页面提示服务忙)、页面延迟服务、接口拒绝服务(页面正常显示,但不能进行增删改操作)等。
步骤S202,响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑。
在本实施例中,预设降级插件,且与服务的核心业务代码解耦。预设的降级插件中包含降级容器,降级容器中保存有降级逻辑。当接收到服务降级消息,从预设的降级插件中降级容器中读取降级逻辑。降级逻辑从预设的降级逻辑配置中心同步到降级容器中。当降级逻辑需要变更时,代码编写人员或者运营人员上传新的降级逻辑或者切换降级逻辑到预设的降级逻辑配置中心后,由降级逻辑配置中心发送变更通知,降级插件响应变更通知,调用同步线程,将降级逻辑的变更同步到降级容器。通过预设降级插件和降级逻辑配置中心,使降级逻辑与服务的核心业务代码解耦,使降级逻辑变更可以动态实现,不需要重新编译服务代码,提升了业务时效性。
步骤S203,调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类。
编译是利用编译程序从源语音编写的源程序产生目标程序的过程,即把高级语言编写的程序翻译成计算机可执行的二进制代码。静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,编译后所有代码都嵌入到宿主程序。使可执行文件在运行时不需要依赖于动态链接库。
动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。优点是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了***资源。
在本实施例中,通过JavaCompiler或者Javasist将降级逻辑进行动态编译,生成降级类。Java的动态编译是在程序运行时,生成Java类。
步骤S204,运行所述降级类,实现服务降级。
将动态编译后的降级类载入内存,执行降级逻辑。
本申请通过接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
在本实施例的一些可选的实现方式中,在步骤S201中,上述电子设备还可以执行以下步骤:
接收服务请求目标的返回数据;
解析所述返回数据,获得所述请求目标的状态参数;
将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息。
在本实施例中,当服务请求其他目标时,解析目标的返回数据,获得所述请求目标的状态参数。状态参数用来表示目标端的处理是否正常,出现了哪类问题。将请求目标的状态参数与预设的服务降级条件相比较,当接收返回数据中的状态参数与服务降级条件一致时,触发服务降级消息。
在一些可选的实现方式中,如果预设的服务降级条件包含N条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系,在上述将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息的步骤中,上述电子设备还可以执行以下步骤:
将所述状态参数与预设的服务降级条件比较,获得与所述状态参数相匹配的服务降级规则;
解析服务降级规则中的降级逻辑参数,将所述降级逻辑参数写入服务降级消息;
触发包含所述降级逻辑参数的服务降级消息。
在本实施例中,预设的服务降级条件包含多条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系。服务降级规则定义了服务降级策略,通过降级逻辑参数区分不同的服务降级逻辑,即针对不同的状态参数当前服务会采用不同的服务降级逻辑执行服务降级。这样,可以根据目标的不同状态,设置不同的降级逻辑,提升了在服务器资源紧张的情况下,服务正常运行的可能性,提升了用户体验。
在一些可选的实现方式中,如果服务降级消息中包含接口信息,在步骤S202中,上述电子设备还可以执行以下步骤:
根据所述接口信息,从所述降级容器中获取与所述接口信息相对应的降级逻辑。
在本实施例中,服务通过不同的接口请求不同的目标,服务端和目标端的数据通信包含接口信息,当目标端返回数据异常时,解析异常的返回数据,触发降级消息,并将接口信息写入降级消息中。在响应降级消息时,根据接口信息从降级容器中获取与接口信息相对应的降级逻辑。这样,针对不同的目标异常,采用不同的降级逻辑,使服务降级更有针对性,提升了计算机资源利用率,提升了用户体验。
在一些可选的实现方式中,在步骤S202之前,上述电子设备还可以执行以下步骤:
接收预设的降级逻辑配置中心发送的配置变更通知;
响应所述配置变更通知,调用同步线程,将所述降级逻辑配置中心的配置变更同步到所述降级容器。
在本实施例中,预设降级配置中心,降级配置中心与业务核心代码解耦,降级配置中心存储可以采用(zookeeper,redis,mysql),存储的技术不限制,方便扩展。降级逻辑代码编写人员根据业务需求编写最新的降级逻辑,上传到降级配置中心。当代码编写人员或者运营人员上传新的降级逻辑或者切换降级逻辑,触发配置变更通知,接收到配置变更通知,调用同步线程,去降级逻辑配置中心获取更新的降级逻辑同步到降级容器。
在一些可选的实现方式中,如果配置变更通知中包含更新的降级逻辑对应的接口,在上述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中,上述电子设备还可以执行以下步骤:
解析所述配置变更通知,获得所述更新的降级逻辑对应的接口;
调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
在本实施例中,配置变更通知中包含更新的降级逻辑对应的接口,根据接口,将更新的降级逻辑同步到降级容器中。配置变更通知中包含了更新的降级逻辑对应的接口,使同步过程只需要针对该接口进行降级逻辑的同步,提升的同步的效率。
在一些可选的实现方式中,如果配置变更通知中还包含更新的降级逻辑的更新版本信息,在上述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中,上述电子设备还可以执行以下步骤:
解析所述配置变更通知,获得所述更新的降级逻辑的更新版本信息;
根据所述接口,读取所述降级容器中与所述接口对应的降级逻辑的当前版本信息;
将所述更新版本信息与所述当前版本信息比较,当两者不一致时,调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
在本实施例中,配置变更通知中还包含更新的降级逻辑的更新版本信息。先根据接口,读取降级容器中与接口对应的降级逻辑的当前版本信息,比较更新版本信息和当前版本信息,当两者不一致时,调用同步线程,将更新的降级逻辑同步到降级容器中。当两者一致时,则不进行同步。通过版本信息的对比,当版本信息一致时,不进行同步,避免不必要的同步过程,浪费计算机资源。通过预设降级逻辑配置中心,其中保存的降级逻辑与接口对应且包含版本信息,使降级逻辑可以根据接口和版本进行配置,可以按接口和版本进行查询,提升了降级逻辑的可视化和可配置化。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种服务降级动态实现装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的服务降级动态实现装置300包括:接收模块301、获取模块302、编译模块303以及运行模块304。其中:
接收模块301,用于接收服务降级消息;
获取模块302,用于响应所述服务降级指令,从预设的降级插件中的降级容器中获取降级逻辑;
编译模块303,用于调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;
运行模块304,用于运行所述降级类,实现服务降级。
本实施例通过接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
在本实施例的一些可选的实现方式中,接收模块301中还包括:
第一接收子模块,用于接收服务请求目标的返回数据;
第一解析子模块,用于解析所述返回数据,获得所述请求目标的状态参数;
第一触发子模块,用于将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息。
在本实施例的一些可选的实现方式中,所述预设的服务降级条件包含N条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系,所述第一触发子模块包括:
第一比较子单元,用于将所述状态参数与预设的服务降级条件比较,获得与所述状态参数相匹配的服务降级规则;
第一解析子单元,用于解析服务降级规则中的降级逻辑参数,将所述降级逻辑参数写入服务降级消息;
第一触发子单元,用于触发包含所述降级逻辑参数的服务降级消息。
在本实施例的一些可选的实现方式中,所述服务降级消息中包含接口信息,获取模块302中包括:
第一获取子模块,用于根据所述接口信息,从所述降级容器中获取与所述接口信息相对应的降级逻辑。
在本实施例的一些可选的实现方式中,服务降级动态实现装置300还包括:
第二接收子模块,用于接收预设的降级逻辑配置中心发送的配置变更通知;
第一同步子模块,用于响应所述配置变更通知,调用同步线程,将所述降级逻辑配置中心的配置变更同步到所述降级容器。
在本实施例的一些可选的实现方式中,所述第二接收子模块还包括:
第二解析子单元,用于解析所述配置变更通知,获得所述更新的降级逻辑对应的接口;
第一同步子单元,用于调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
在本实施例的一些可选的实现方式中,所述配置变更通知中还包含更新的降级逻辑的更新版本信息,所述第二接收子模块还包括:
第三解析子单元,用于解析所述配置变更通知,获得所述更新的降级逻辑的更新版本信息;
第一读取子单元,用于根据所述接口,读取所述降级容器中与所述接口对应的降级逻辑的当前版本信息;
第二同步子单元,用于将所述更新版本信息与所述当前版本信息比较,当两者不一致时,调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如服务降级动态实现方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述服务降级动态实现方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
通过接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的服务降级动态实现方法的步骤。
通过接收服务降级消息;响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;运行所述降级类,实现服务降级。降级逻辑保存在降级容器中,降级逻辑代码与核心业务代码解耦,降级逻辑接口化,版本化,可以做到降级逻辑的复用,以及版本切换。同时通过对降级容器中降级逻辑的动态化配置可以根据业务逻辑实时切换降级逻辑,从而满足业务需要。解决了现有降级方案不能动态切换,以及不能满足业务时效的不足。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种服务降级动态实现方法,其特征在于,包括下述步骤:
接收服务降级消息;
响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑;
调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;
运行所述降级类,实现服务降级。
2.根据权利要求1所述的服务降级动态实现方法,其特征在于,在所述接收服务降级消息的步骤中还包括:
接收服务请求目标的返回数据;
解析所述返回数据,获得所述请求目标的状态参数;
将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息。
3.根据权利要求2所述的服务降级动态实现方法,其特征在于,所述预设的服务降级条件包含N条服务降级规则,且每条服务降级规则与请求目标的状态参数预设匹配关系,在将所述状态参数与预设的服务降级条件比较,当所述状态参数与所述服务降级条件一致时,触发服务降级消息的步骤中包括:
将所述状态参数与预设的服务降级条件比较,获得与所述状态参数相匹配的服务降级规则;
解析服务降级规则中的降级逻辑参数,将所述降级逻辑参数写入服务降级消息;
触发包含所述降级逻辑参数的服务降级消息。
4.根据权利要求1所述的服务降级动态实现方法,其特征在于,所述服务降级消息中包含接口信息,所述响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑的步骤具体包括:
根据所述接口信息,从所述降级容器中获取与所述接口信息相对应的降级逻辑。
5.根据权利要求1所述的服务降级动态实现方法,其特征在于,在所述响应所述服务降级消息,从预设的降级插件中的降级容器中获取降级逻辑的步骤之前还包括:
接收预设的降级逻辑配置中心发送的配置变更通知;
响应所述配置变更通知,调用同步线程,将所述降级逻辑配置中心的配置变更同步到所述降级容器。
6.根据权利要求5所述的服务降级动态实现方法,其特征在于,所述配置变更通知中包含更新的降级逻辑对应的接口,在所述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中还包括:
解析所述配置变更通知,获得所述更新的降级逻辑对应的接口;
调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
7.根据权利要求6所述的服务降级动态实现方法,其特征在于,所述配置变更通知中还包含更新的降级逻辑的更新版本信息,在所述接收预设的降级逻辑配置中心发送的配置变更通知的步骤中还包括:
解析所述配置变更通知,获得所述更新的降级逻辑的更新版本信息;
根据所述接口,读取所述降级容器中与所述接口对应的降级逻辑的当前版本信息;
将所述更新版本信息与所述当前版本信息比较,当两者不一致时,调用同步线程,根据所述接口将所述更新的降级逻辑同步到所述降级容器中。
8.一种服务降级动态实现装置,其特征在于,包括:
接收模块,用于接收服务降级消息;
获取模块,用于响应所述服务降级指令,从预设的降级插件中的降级容器中获取降级逻辑;
编译模块,用于调用预设的动态编译器,将所述降级逻辑进行动态编译,生成降级类;
运行模块,用于运行所述降级类,实现服务降级。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的服务降级动态实现方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的服务降级动态实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110575120.4A CN113179188B (zh) | 2021-05-26 | 2021-05-26 | 服务降级动态实现方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110575120.4A CN113179188B (zh) | 2021-05-26 | 2021-05-26 | 服务降级动态实现方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113179188A true CN113179188A (zh) | 2021-07-27 |
CN113179188B CN113179188B (zh) | 2022-09-13 |
Family
ID=76928484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110575120.4A Active CN113179188B (zh) | 2021-05-26 | 2021-05-26 | 服务降级动态实现方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113179188B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090037A (zh) * | 2021-11-12 | 2022-02-25 | 北京字节跳动网络技术有限公司 | 一种服务降级方法、装置、计算机设备以及存储介质 |
CN114578727A (zh) * | 2022-01-29 | 2022-06-03 | 深圳市云鼠科技开发有限公司 | 用于清洁机器人的业务逻辑控制方法 |
WO2024082875A1 (zh) * | 2022-10-17 | 2024-04-25 | 华为云计算技术有限公司 | 一种服务治理方法以及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155336A1 (en) * | 2006-12-20 | 2008-06-26 | International Business Machines Corporation | Method, system and program product for dynamically identifying components contributing to service degradation |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理***和方法 |
CN104598266A (zh) * | 2014-12-11 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 客户端应用业务逻辑更新方法、装置及设备 |
CN104834541A (zh) * | 2015-03-30 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 功能模块挂载方法、挂载***及更新挂载***的方法 |
US20150227544A1 (en) * | 2014-02-13 | 2015-08-13 | International Business Machines Corporation | Efficient data storage utilization and recycling by gradual data degradation |
CN105677466A (zh) * | 2015-12-31 | 2016-06-15 | 百度在线网络技术(北京)有限公司 | 第三方应用接口的降级处理的方法和装置 |
US20190102717A1 (en) * | 2017-09-29 | 2019-04-04 | At&T Intellectual Property I, L.P. | Microservice auto-scaling for achieving service level agreements |
CN111262898A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务降级处理方法、装置及电子设备 |
CN112187505A (zh) * | 2020-08-17 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 自适应服务降级方法、电子装置及存储介质 |
-
2021
- 2021-05-26 CN CN202110575120.4A patent/CN113179188B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155336A1 (en) * | 2006-12-20 | 2008-06-26 | International Business Machines Corporation | Method, system and program product for dynamically identifying components contributing to service degradation |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理***和方法 |
US20150227544A1 (en) * | 2014-02-13 | 2015-08-13 | International Business Machines Corporation | Efficient data storage utilization and recycling by gradual data degradation |
CN104598266A (zh) * | 2014-12-11 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 客户端应用业务逻辑更新方法、装置及设备 |
CN104834541A (zh) * | 2015-03-30 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 功能模块挂载方法、挂载***及更新挂载***的方法 |
CN105677466A (zh) * | 2015-12-31 | 2016-06-15 | 百度在线网络技术(北京)有限公司 | 第三方应用接口的降级处理的方法和装置 |
US20190102717A1 (en) * | 2017-09-29 | 2019-04-04 | At&T Intellectual Property I, L.P. | Microservice auto-scaling for achieving service level agreements |
CN111262898A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务降级处理方法、装置及电子设备 |
CN112187505A (zh) * | 2020-08-17 | 2021-01-05 | 杭州安恒信息技术股份有限公司 | 自适应服务降级方法、电子装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
刘渊等: "云环境下基于Kubernetes集群***的容器网络研究与优化", 《信息网络安全》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090037A (zh) * | 2021-11-12 | 2022-02-25 | 北京字节跳动网络技术有限公司 | 一种服务降级方法、装置、计算机设备以及存储介质 |
CN114090037B (zh) * | 2021-11-12 | 2023-07-18 | 抖音视界有限公司 | 一种服务降级方法、装置、计算机设备以及存储介质 |
CN114578727A (zh) * | 2022-01-29 | 2022-06-03 | 深圳市云鼠科技开发有限公司 | 用于清洁机器人的业务逻辑控制方法 |
WO2024082875A1 (zh) * | 2022-10-17 | 2024-04-25 | 华为云计算技术有限公司 | 一种服务治理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113179188B (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113179188B (zh) | 服务降级动态实现方法、装置、计算机设备及存储介质 | |
CN111158818B (zh) | 一种页面渲染方法和装置 | |
CN113254445B (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN103455376A (zh) | 对操作***中多个进程对现场可编程门阵列的使用的管理 | |
CN111045901A (zh) | 容器的监控方法、装置、存储介质和电子设备 | |
CN114996619A (zh) | 一种页面显示的方法、装置、计算机设备及存储介质 | |
CN111782304A (zh) | 分页加载数据逻辑控制方法、装置、计算机设备及介质 | |
CN114443076A (zh) | 镜像构建方法、装置、设备及存储介质 | |
CN107657155B (zh) | 用于鉴定用户操作权限的方法和装置 | |
CN111352644A (zh) | 小程序更新方法、装置、服务器及存储介质 | |
CN113722007B (zh) | Vpn分支设备的配置方法、装置及*** | |
CN112860235B (zh) | 处理文本的方法、装置、设备和存储介质 | |
CN111857782B (zh) | 界面更新方法、装置、计算机设备和存储介质 | |
CN113779122B (zh) | 导出数据的方法和装置 | |
CN114138401A (zh) | 基于人工智能的容器配置方法、装置、设备及介质 | |
CN116108814B (zh) | 甘特图处理方法、装置、计算机设备及存储介质 | |
CN112035335A (zh) | 自动化测试的方法、装置、设备、介质 | |
CN114816483A (zh) | 一种业务***的开发方法和装置 | |
CN118113376A (zh) | 用于控制矿灯的应用程序启动方法及相关设备 | |
CN116382719A (zh) | 插件处理方法、装置、计算机设备及存储介质 | |
CN114238466A (zh) | 一种消息推送方法、装置、计算机设备及存储介质 | |
CN116628380A (zh) | 微前端的应用管理方法、装置、电子设备及存储介质 | |
CN117111957A (zh) | 代码生成方法、装置、计算机设备及存储介质 | |
CN115686475A (zh) | 标准化服务sdk自动化生成方法及其相关设备 | |
CN118012527A (zh) | 应用***功能版本切换方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |