分布式常见面试题:服务熔断,解决灾难性雪崩效应的有效利器
各位朋友,今天咱们来聊聊分布式面试中的必考题——服务熔断。这可是解决灾难性雪崩效应的有效利器!
在高并发的情况下,服务访问的压力不断增大,可能会出现调用超时、接口错误等问题,严重时甚至会引发雪崩效应。为了保护服务不被流量冲垮,就像保险丝一样,会直接掐断服务,页面往往会给出“请稍后再试”的相关提示。
那可能有人会问,熔断器怎么知道什么时候该熔断呢?单纯根据一段时间的访问量来判定其实并不合理。一般来说,熔断器是根据服务调用的失败率来判断的。比如说一秒内有 100 个请求,如果设置失败率为 50%,一旦达到 50 个请求失败或者超时,熔断器就会启动熔断来断开服务。
断开之后怎么恢复服务呢?熔断器本身带有重试机制,熔断 5 秒钟之后会发起重试,然后关掉熔断,继续对外提供服务。另外,熔断往往是跟降级一起用的。一旦发生熔断,就会调用降级方法,像常见的 getfallback 。比如说 redis 服务,如果压力过大出现了熔断,熔断器就会自动调用降级方法,也就是咱们常说的备胎。
所以啊,服务熔断这一块大家必须要掌握,这在分布式场景中可是至关重要的!