服务之间的依赖关系,如果有被依赖的服务挂了以后,造成其它服务也会出现请求堆积、资源占用,慢慢扩散到所有服务,引发雪崩效应。
而容错就是要解决这类问题,常见的方式:
主动超时:Http请求主动设置一个超时时间,超时就直接返回,不会造成服务堆积限流:限制最大并发数熔断:当错误数超过阈值时快速失败,不调用后端服务,同时隔一定时间放几个请求去重试后端服务是否能正常调用,如果成功则关闭熔断状态,失败则继续快速失败,直接返回。(此处有个重试,重试就是弹性恢复的能力)隔离:把每个依赖或调用的服务都隔离开来,防止级联失败引起整体服务不可用降级:服务失败或异常后,返回指定的默认信息