微服务保护--线程隔离(舱壁模式)

一、线程隔离的实现方式

线程隔离有两种方式实现:

  • 线程池隔离

  • 信号量隔离(Sentinel默认采用)

如图:

线程池隔离:给每个服务调用业务分配一个线程池,利用线程池本身实现隔离效果

信号量隔离:不创建线程池,而是计数器模式,记录业务使用的线程数量,达到信号量上限时,禁止新的请求。

两者的优缺点:

二、sentinel的线程隔离

用法说明

在添加限流规则时,可以选择两种阈值类型:

  • QPS:就是每秒的请求数,在快速入门中已经演示过

  • 线程数:是该资源能使用用的tomcat线程数的最大值。也就是通过限制线程数量,实现线程隔离(舱壁模式)。

案例需求:给 order-service服务中的UserClient的查询用户接口设置流控规则,线程数不能超过 2。然后利用jemeter测试。

1)配置隔离规则

选择feign接口后面的流控按钮:

填写表单:

2)Jmeter测试

选择《阈值类型-线程数<2》:

一次发生10个请求,有较大概率并发线程数超过2,而超出的请求会走之前定义的失败降级逻辑。

查看运行结果:

喜欢的话点个关注吧!

相关推荐
0xDevNull4 分钟前
分布式事务实战指南:从理论到Seata落地
java·开发语言·后端
椰猫子10 分钟前
Spring Framework(Bean)
java·前端·spring
道清茗11 分钟前
【RH294知识点汇总】第 7 章 《 使用角色和 Ansible 内容集合简化 Playbook 》
java·前端·ansible
生成论实验室13 分钟前
生命降U:从分子共鸣到觉知涌现
人工智能·科技·架构·生活·信息与通信
南境十里·墨染春水20 分钟前
linux学习进展 线程同步——条件变量
java·开发语言·学习
窥视未来27 分钟前
MySQL 性能调优完全指南:从硬件到 SQL,一篇吃透
java·数据库
四方云27 分钟前
基于大模型的AI外呼系统:架构演进与企业落地实践
人工智能·架构
普修罗双战士31 分钟前
【开发工具IDEA调试,高频使用, IntelliJ IDEA 调试快捷键完全指南】
java·开发语言·intellij-idea
XS0301061 小时前
Java 基础(十)异常
java·开发语言·oracle
_F_y1 小时前
C++11 异步操作实现线程池
java·jvm·c++