基于Hystrix解决服务雪崩效应原理
服务降级
在高并发的情况下,防止客户一直等待,使用服务器降级方式(会返回给用户一个友好提示,不会去处理请求,调用fallBack本地方法,)目的是为了提高用户体验。
如果调用其他接口超时的时候(默认是1秒时间),如果在1秒中没有及时的响应的话,默认情况下业务逻辑可以执行,但是会直接执行服务降级方法。
服务熔断
服务熔断目的是为了保护服务,在高并发的情况下,如果请求达到了一定的极限(可以自己设置数字),如果流量超出了自己设置的数字,就会自动开启服务保护功能,使用服务降级的方式来返回一个友好的提示,服务熔断和服务降级一起使用。
服务隔离
使用线程池和信号量隔离
一般都是使用线程池隔离。
线程池隔离:每个接口都有自己独立的线程池,每个线程池互不影响,
缺点:cpu占用率非常高,不是所有的接口都要采用线程池隔离,除非是关键的接口。