一、服务雪崩
1.服务雪崩效应:
1.默认情况下tomcat只有一个线程池去处理客户端发送的所有请求,这样的话,在高并发情况下,如果客户端所有的请求堆积到同一个服务接口上,就会产生tomcat所有线程去处理该服务接口,可能导致其他接口服务,产生延迟和等待。
2.假设Tomcat最大请求数(同时)20,客户端发送请求100,会有80个请求产生延迟等待,默认是线程数是50

3.Feign客户端超时时间配置(默认是1S,超时页面会报错)
4.Feign默认支持ribbon,开启了负载均衡

二、 Hystrix简单介绍
1.Hystrix服务保护框架,能解决断路器、服务降级、服务熔断、服务隔离机制、服务雪崩(2,3,4解决)
2.服务降级:高并发情况下,防止客户一直等待,使用服务降级方式(返回一个友好的提示给客户端,不会去处理请求,调用fallback本地方法,目前是为了用户体验)
例子:秒杀--当前请求人数过多,请稍后重试
3.服务熔断:目的是为了保护服务,在高并发情况下,如果请求达到了极限(可以自己设置阈值),如果流量超出了设置的阈值,自动开启服务保护功能,使用服务降级方式返回一个友好的提示。服务熔断和服务降级一起使用。
4.服务隔离:线程池隔离(常用)和信号量隔离;每个服务接口都有自己独立的线程池,每个线程池互不影响,缺点:CPU占用率高(不是所有接口采用,核心关键接口)

三、代码实现
1.引入hystrix依赖

2.开启断路器

3.开启Hystrix

4.注解方式:@HystrixCommand(默认阈值是10,需要配)

5.可使用apache Jmeter工具去操作数十万的请求
6.禁止超时时间(默认1S,超过1S就会走熔断/降级)
![]()
四、以类的方式实现服务降级隔离的





本文深入探讨了服务雪崩现象及其对系统稳定性的影响,介绍了Hystrix框架如何通过断路器、服务降级、熔断和隔离机制来解决服务雪崩问题,保障微服务架构下的系统健康。
167万+

被折叠的 条评论
为什么被折叠?



