雪崩在微服务之间进行服务呼叫是一种服务故障导致级联服务发生故障的现象,称为雪崩效应。 雪崩效应表示提供者变得不可用、消费者变得不可用和不可用的过程。
如果存在以下呼叫链接:
此时,服务a的流量变动较大,流量往往会突然增加! 在这种情况下,即使服务a能够承担请求,服务b和服务c也不一定能够承担该突发请求。 此时,Service C无法承受要求,无法使用时。 那么,Service B的请求也会被阻止,Service B的线程资源逐渐耗尽,Service B不再可用。 之后,服务a也不能使用。 该过程如下图所示。
服务熔断“保险丝”本身是一个开关装置,在某个服务单元发生故障后,通过断路器(hystrix )的故障监测,启动某个异常条件,直接熔断整个服务。 通过向调用方法返回预期的可处理备用响应(FallBack ),而不是抛出等待时间或调用方法无法处理的异常,从而防止服务调用方线程被时间占用,导致分布式系统故障蔓延、严重目标服务状况好转后重新启动调用。 服务熔断是解决服务雪崩的重要手段。
当服务降级压力急剧增加时,根据当前的业务状况和流量降级部分服务和面有策略,以3358www.Sina.com/缓解服务压力同时,确保部分或大部分任务的客户得到正确的响应。 这意味着当前请求无法处理或出现错误,并提供默认返回。
一句话,关闭微服务系统的某些边缘服务,以确保系统的核心服务正常运行。
总结熔断一定会发生降级,所以熔断也是降级之一。 区别在于熔断是呼叫链路的保护,降级是系统过载的保护处理。
出于可用性可靠性的考虑,熔断和降级的相同目的是为了避免整个系统变慢或崩溃而采用的技术手段最终相似。 对两者来说,最终让用户体验的是,一些功能暂时不能完成或者不能使用的粒度一般是服务级别。 当然,业界也有不少更精细的做法,如要求数据保持层(允许查询、禁止追加删除)的自律性等。 熔断模式一般是基于服务策略的自动触发,虽然降级可以人工干预,但在微服务体系结构下,显然不可能完全依赖人,交换机的预配置、 配置中心是必要的手段(sentinel ),熔断和降级的不同点触发原因不太一样,服务降级一般是某个服务)故障造成的,服务降级从总体负荷到管理目标水平不太高熔断实际上是框架级处理,所有微服务都需要(不区分级别),而降级相对于正常业务需要区分级别(例如降级通常从最外围服务边缘服务开始)。