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

一、线程隔离的实现方式

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

  • 线程池隔离

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

如图:

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

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

两者的优缺点:

二、sentinel的线程隔离

用法说明

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

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

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

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

1)配置隔离规则

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

填写表单:

2)Jmeter测试

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

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

查看运行结果:

喜欢的话点个关注吧!

相关推荐
吴声子夜歌40 分钟前
Java——定时任务
java
吴声子夜歌1 小时前
Java——原子变量和CAS
java·cas
野生技术架构师1 小时前
2026最新Java面试八股文天花板(含详细解析)
java·jvm·spring
小碗羊肉1 小时前
【JavaWeb | 第十二篇】项目实战——登录功能
java·前端·数据库
喜欢小苹果的码农1 小时前
Java动态定时任务
java
haiyangyiba2 小时前
修改jar包中class的包路径
java·jar·修改class·修改class中包路径
阿洛学长2 小时前
CSDN、掘金、简书博客文章如何转为Markdown?
运维·数据库·架构·php·持续部署
一切皆是因缘际会2 小时前
AI技术新风口:边缘计算与智能体协同,解锁产业落地新范式
大数据·人工智能·安全·ai·架构·语音识别
雨落在了我的手上2 小时前
初识java(七):Java调试案例讲解
java·intellij-idea·集成开发环境调试功能
轻刀快马2 小时前
AI Agent 架构里的隐形杀手:MCP 协议下 ProcessBuilder 的 64KB 死锁陷阱
架构