概念:
服务熔断:服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。
服务降级:服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。
相同点:
1.目的一致
都是为了系统的稳定性,防止因为个别微服务的不可用而拖死整个系统服务。
2.表现类似
在表现上都是让用户感知,该服务暂时不可用请稍后再试。
3.粒度一致
粒度上,都是服务级别的粒度,某些情况下,也有更细的粒度,如数据的持久层,只允许查询,不允许增删改。
不同点:
1.触发条件不同
服务熔断一般是某个服务挂掉了引起的,一般是下游服务;而服务降级一般是从整体的负荷考虑,主动降级。
2.管理目标的层次不同
熔断其实是一个框架级的处理,每个微服务都需要,没有层次之分;而降级一般需要对业务有层级之分,一般是从最外围服务开始。