微服务框架
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
微服务保护
文章目录
- 微服务框架
- 微服务保护
- 32 隔离和降级
- 32.3 线程隔离【舱壁模式】
- 32.3.1 线程隔离【舱壁模式】
- 32.3.2 案例
- 32.3.3 总结
32 隔离和降级
32.3 线程隔离【舱壁模式】
32.3.1 线程隔离【舱壁模式】
在添加限流规则时,可以选择两种阈值类型:
- QPS:就是每秒的请求数,在快速入门中已经演示过
- 线程数:是该资源能使用用的tomcat线程数的最大值。也就是通过限制线程数量,实现舱壁模式。
32.3.2 案例
【案例】线程隔离(舱壁模式)
需求:给 UserClient的查询用户接口设置流控规则,线程数不能超过2。然后利用jemeter测试。
打开sentinel 控制台
就给这个Feign 的调用做一个线程隔离 → 选择 【+流控】
直接新增
使用JMeter 进行测试
阈值是2 ,超出的就应该被拒绝
可以看到全部绿了,为什么?
【原因】降级策略
我们加了这个东西后,线程降级不会报错, 而是走我们自己写的那套业务
看看控制台 的日志
就只成功拿到user 数据两次
32.3.3 总结
线程隔离的两种手段是?
- 信号量隔离
- 线程池隔离
信号量隔离的特点是?
- 基于计数器模式,简单,开销小
线程池隔离的特点是?
- 基于线程池模式,有额外开销,但隔离控制更强