009 微服务容错机制

一 概述

在微服务的调用过程之中,可能会出现下面的问题:

[1]当一个微服务调用另外一个微服务的时候,如果被调用的微服务出现问题,就会导致调用者出现问题,如果调用的关系是级联的,就会出现级联错误,发生服务雪崩.

[2]微服务如果出现共享线程池的情况,一个微服务出现问题,就会影响在此线程池之中的另外线程.

解决方法:

在整个微服务架构之中,通常存在下面的三种解决方式

[1]超时机制:如果一个方法调用出现延迟的情况,立马发生超时错误,放置微服务的调用堆积,造成系统资源耗尽.

[2]线程隔离:不同的微服务之间使用不同的线程池,防止一个线程池的原因,导致多个微服务出现资源的问题.

[3]熔断器模式:本质上说,熔断器是一个快速失败的机制,当出现调用问题的时候,立马结束调用,这里面可以使用超时机制进行规避.

   当多次错误发生的时候,就认为这个服务不可用,进行快速失败.熔断器会一个检测的功能,当发现微服务可用,就打开熔断器,进行正常的微服务的调用.

在springcloud之中,使用hystrix组件帮助我们实现微服务的容错机制.

从本质上,熔断器就是一个使用快速失败解决资源分配的问题.

二 .Hystrix提供的功能

[1]failback机制:一旦发生微服务的调用失败,直接进行fallback机制.默认情况下,histrix使用异常机制实现,当然我们也可以使用fallback方法进行容错返回.

[2]超时机制:一旦方法调用出现超时,立马认为微服务失败,直接进入fallback机制.

[3]线程隔离:不同的方法调用进入到不同的线程之中,这样彼此的微服务相互的影响降到最低.

[4]熔断器:一旦微服务多次失败,直接进入到fallback机制,不再做无谓的尝试.同时Hystrix提供半开模式,允许进行一些微服务的调用的尝试,当成功的几率符合设置,熔断器就关闭,进行正常的方法调用.

原文地址:https://www.cnblogs.com/trekxu/p/10470236.html