1. 熔断
- 对于某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不实际调用目标服务,直接返回一个mock的值,快速释放资源。如果目标服务情况好转则恢复调用。
- 一般应用在调用方。
2. 限流
- 比如一个provider是一个核心服务,给多个consumer提供服务,突然某个consumer流量飙升,占用了provider大部分机器时间,导致其他可能更重要的consumer不能被正常服务。或者导致provider处理不过来。
- 所以provider端需要根据consumer的重要程度,以及平时的QPS大小,来给每一个consumer设置一个流量上线,同一时间只会给某个consumer指定的线程支持或QPS支持。超过限制则等待或者直接决绝。
- 它是应用在被调用方。
3. 降级
- 当流量高峰时期时,服务器顶不住那么大的流量压力,直接关闭掉部分非核心接口或核心服务。