一种实现服务降级的方法、设备及计算机可读存储介质技术

技术编号:17138390 阅读:45 留言:0更新日期:2018-01-27 14:23
本发明专利技术实施例提供了一种实现服务降级的方法、设备及计算机可读存储介质,包括:与相关技术相比,本发明专利技术实施例技术方案包括:为各依赖服务分配相互隔离的线程资源;各依赖服务在分配的线程资源上进行用户请求的响应处理。本发明专利技术实施例为各依赖服务分配相互隔离的线程资源,避免了服务雪崩,提升了网站运行的稳定性。

A method, device, and computer readable storage medium for service degradation

The embodiment of the invention includes a method and implementation of degraded service equipment and computer readable storage medium, provided: compared with related technologies, including the technical scheme of the invention implementation: thread resources depend on the service distribution isolated; the dependent service processed in response to a user request in a thread on the allocation of resources. The embodiment of the present invention is to allocate separate thread resources for each dependent service, avoid the service avalanche, and improve the stability of the operation of the website.

【技术实现步骤摘要】
一种实现服务降级的方法、设备及计算机可读存储介质
本专利技术涉及互联网技术,尤指一种实现服务降级的方法、设备及计算机可读存储介质。
技术介绍
目前,大型网站对大并发访问主要采用缓存、限流和降级三种方式进行处理。服务端在通过限流和缓存逐层过滤之后,最终流向业务层进行执行。当业务层出现服务问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,则需要进行服务降级。服务降级主要从服务端链路考虑,即根据用户访问的服务调用链路来确定哪里需要降级。降级的策略包含自动开关降级、人工开关降级、读服务降级、写服务降级和多级降级。其中,自动开关降级策略可以根据系统负载、资源使用情况及服务质量等指标来进行降级,具体可分为超时降级、统计失败次数降级以及故障降级。超时降级是指当访问的数据库、超文本传输协议(http)服务、远程调用响应慢或者长时间响应慢,如果服务不是核心服务可以在超时后自动降级。统计失败次数降级是指依赖一些不稳定的应用程序编程接口(API),比如调用外部第三方接入方服务,当失败调用次数达到一定阀值自动降级;然后通过异步线程去探测服务是否恢复了,则取消降级。故障降级是指要调用的远程服务挂掉了(网络故障、域名系统(DNS)故障、http服务返回错误的状态码、远程过程调用协议(rpc)服务抛出异常),则可以直接降级。上述三种降级方式都是通过在业务逻辑层上做判断进行降级处理和恢复,耦合度比较高。在网站高峰期间,如果高并发的流量涌入容易导致服务雪崩效应(服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,并不可用被逐渐放大的过程,服务雪崩效应产生的过程主要是以下三个阶段造成服务提供者不可用、重试加大流量、服务调用者不可用)。在一个高度服务化的系统中,一个业务逻辑通常会依赖多个服务,业务逻辑所依赖的服务简称为依赖服务。比如在业务逻辑为商品详情服务时,依赖服务包括:商品服务、价格服务、商品评论服务、推荐服务等。商品详情服务呈现的内容包括商品的详细信息、商品的价格、用户对商品的评论以及产品推荐等,在页面渲染业务逻辑时,需要呈现上述信息,高度服务化的系统会把上述的几项内容独立成相应的系统服务,因而相应的在页面呈现时需要调用相关的系统服务,因而统称为依赖服务。图1为相关技术中业务逻辑和依赖服务的组成示意图,如图1所示,业务逻辑为商品详情服务,依赖服务包括:商品服务、价格服务、商品评论服务、推荐服务;其中,调用四个依赖服务时会共享商品详情服务的线程池,如果其中一个依赖服务不可用,该依赖服务就会出现在线程池里,线程池内的所有线程都因等待响应而被阻塞,从而造成服务雪崩。而服务雪崩会造成服务异常,影响整个网站的正常运行。
技术实现思路
针对上述技术问题,本专利技术实施例提供了一种实现服务降级的方法、设备及计算机可读存储介质,能够避免依赖服务无响应造成的雪崩,提升网络稳定性。本专利技术实施例提供了一种实现服务降级的方法,包括:为各依赖服务分配相互隔离的线程资源;各依赖服务在分配的线程资源上进行用户请求的响应处理。可选的,所述为各依赖服务分配相互隔离的线程资源的步骤包括:为业务逻辑依赖的每一个所述依赖服务分配独立的线程池,以使该依赖服务获得与其他依赖服务相互隔离的线程资源;或,为业务逻辑依赖的每一个所述依赖服务通过信号量分配线程资源,以使该依赖服务获得与其他依赖服务相互隔离的资源。可选的,所述为业务逻辑依赖的每一个依赖服务分配独立的线程池的步骤包括:将分配给业务逻辑的线程资源,按照预设策略为各依赖服务对应的线程池分别分配相应个数的线程。可选的,所述各依赖服务在分配的线程资源上进行用户请求的响应处理的步骤包括:所述依赖服务对应的线程池中不包含用于进行响应处理的线程资源时,所述依赖服务向业务逻辑反馈第一预设信息;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,且线程资源在第一预设时长内被分配时,所述依赖服务通过分配的线程资源向业务逻辑响应用户请求;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,但线程资源在第一预设时长内未被分配时,向业务逻辑反馈第二预设信息。可选的,向业务逻辑反馈第二预设信息后,所述方法还包括:所述线程资源在第二预设时长内被分配时,所述依赖服务通过分配的线程资源向业务逻辑响应用户请求。另一方面,本专利技术实施例还提供一种实现服务降级的设备,所述设备包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的服务降级程序,以实现以下步骤:为各依赖服务分配相互隔离的线程资源;各依赖服务在分配的线程资源上进行用户请求的响应处理。可选的,所述处理器用于执行存储器中存储的为各依赖服务分配相互隔离的线程资源包括:为业务逻辑依赖的每一个所述依赖服务分配独立的线程池,以使该依赖服务获得与其他依赖服务相互隔离的线程资源;或,为业务逻辑依赖的每一个所述依赖服务通过信号量分配线程资源,以使该依赖服务获得与其他依赖服务相互隔离的资源。可选的,所述处理器用于执行存储器中存储的为业务逻辑依赖的每一个依赖服务分配独立的线程池包括:将分配给业务逻辑的线程资源,按照预设策略为各依赖服务对应的线程池分别分配相应个数的线程。可选的,所述处理器用于执行存储器中存储的各依赖服务在分配的线程资源上进行用户请求的响应处理包括:所述依赖服务对应的线程池中不包含用于进行响应处理的线程资源时,所述依赖服务向业务逻辑反馈第一预设信息;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,且线程资源在第一预设时长内被分配时,所述依赖服务通过分配的线程资源向业务逻辑响应用户请求;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,但线程资源在第一预设时长内未被分配时,向业务逻辑反馈第二预设信息。再一方面,本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行以实现上述的服务降级的方法。与相关技术相比,本专利技术实施例技术方案包括:从预设服务器获取根据历史服务降级数据训练生成的在各场景对通知进行处理的服务降级模型;根据获取的服务降级模型,对接收到的通知进行处理。本专利技术实施例根据历史服务降级数据生成服务降级模型,实现了根据不同场景进行服务降级,提升了用户的使用体验。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为相关技术中业务逻辑和依赖服务的组成示意图;图2为本专利技术实施例应用服务器的结构示意图;图3为本专利技术实施例实现服务降级的方法的流程图;图4为本专利技术实施例通过线程池为各依赖分配线程资源的示意图;图5为本专利技术实施例通过线程池和信号量为依赖服务分配线程资源的示意图;图6为本专利技术实施例进行响应处理的信息流向示意图;图7为本专利技术实施例进行响应处理的示意图;图8为本专利技术另一实施例实现服务降级的方法的流程图;图9为本专利技术实施例实现服务降级的设备的结构框图。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本文档来自技高网
...
一种实现服务降级的方法、设备及计算机可读存储介质

【技术保护点】
一种实现服务降级的方法,其特征在于,包括:为各依赖服务分配相互隔离的线程资源;所述各依赖服务在分配的线程资源上进行用户请求的响应处理。

【技术特征摘要】
1.一种实现服务降级的方法,其特征在于,包括:为各依赖服务分配相互隔离的线程资源;所述各依赖服务在分配的线程资源上进行用户请求的响应处理。2.根据权利要求1所述的方法,其特征在于,所述为各依赖服务分配相互隔离的线程资源的步骤包括:为业务逻辑依赖的每一个所述依赖服务分配独立的线程池,以使该依赖服务获得与其他依赖服务相互隔离的线程资源;或,为业务逻辑依赖的每一个所述依赖服务通过信号量分配线程资源,以使该依赖服务获得与其他依赖服务相互隔离的资源。3.根据权利要求1所述的方法,其特征在于,所述为业务逻辑依赖的每一个依赖服务分配独立的线程池的步骤包括:将分配给业务逻辑的线程资源,按照预设策略为所述各依赖服务对应的线程池分别分配相应个数的线程。4.根据权利要求1~3任一项所述的方法,其特征在于,所述各依赖服务在分配的线程资源上进行用户请求的响应处理的步骤包括:所述依赖服务对应的线程池中不包含用于进行响应处理的线程资源时,所述依赖服务向业务逻辑反馈第一预设信息;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,且线程资源在第一预设时长内被分配时,所述依赖服务通过分配的线程资源向业务逻辑响应用户请求;所述依赖服务对应的线程池中包含用于进行响应处理的线程资源,但线程资源在第一预设时长内未被分配时,向业务逻辑反馈第二预设信息。5.根据权利要求4所述的方法,其特征在于,向业务逻辑反馈第二预设信息后,所述方法还包括:所述线程资源在第二预设时长内被分配时,所述依赖服务通过分配的线程资源向业务逻辑响应用户请求。6.一种实现服务降级的设备,其特征在于,所述设备包括处理器、存储器及通信总线;所述通信总线用于实现处理器...

【专利技术属性】
技术研发人员:王福财
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1