首页 > 其他分享 >线程隔离(舱壁模式)

线程隔离(舱壁模式)

时间:2022-11-14 13:11:14浏览次数:40  
标签:信号量 隔离 模式 舱壁 线程 请求

线程隔离(舱壁模式)

1.线程隔离的实现方式

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

  • 线程池隔离

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

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

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

2.sentinel的线程隔离

2.1用法说明

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

  • QPS:就是每秒的请求数,在快速入门中已经演示过
  • 线程数:是该资源能使用用的tomcat线程数的最大值。也就是通过限制线程数量,实现线程隔离(舱壁模式)。

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

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

1668402192678

填写表单

1668402326334

2.3Jmeter测试

1668402364288

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

1668402413568

标签:信号量,隔离,模式,舱壁,线程,请求
From: https://www.cnblogs.com/zhangdashuaige/p/16888723.html

相关文章

  • Java多线程简介
    一、线程简介Process进程与Thread线程程序是指令和数据的有序集合,本身没有任何运行的含义,为静态概念。进程是执行程序的一次执行过程,为动态概念。是系统资源分配的单位......
  • 并发编程8 线程的创建&验证线程之间数据共享&守护线程&线程进程效率对比&锁(死锁/递归
    1.线程理论以及线程的两种创建方法2.线程之间是数据共享的与join方法3.多线程和多进程的效率对比4.数据共享的补充线程开启太快5.线程锁互斥锁同步锁6.死锁现象和递归锁7.......
  • 对象所属线程
    对象所属线程QT中的信号槽与c++中的回调很像,又和通知很像,代码行至某处,发送信号emit,然后槽函数接收到信号;但是QT也支持跨线程执行,就是A对象给B对象发送信号,B不会立即执行......
  • Qt -- 线程的使用(基础到高级)
    线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程......
  • 支持JDK19虚拟线程的web框架,之五(终篇):兴风作浪的ThreadLocal
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos《支持JDK19虚拟线程的web框架》系列文章链接支持JDK19虚拟线......
  • Java多线程中的ThreadLocal线程本地变量
    概论ThreadLocal指的是开辟一块统一初始化的空间,在这个区域块里每个线程使用的区域独立,互不干扰。一般创建为对象的静态属性。常用方法:set(value)get(value)子类的initia......
  • Java中指令重排在多线程中出现数据错误的例子
    概述听说当两条指令互相不依赖的时候,在cpu或者jvm那儿可能会为了提高性能而进行指令重排。数据依赖比如下面两条代码就没有数据依赖:int a=5;int b=2;这两条指......
  • 一文学会线程池、任务调度的使用
    一文学会线程池、任务调度的使用本文主要讲解线程池以及定时任务的使用,以及在分布式环境下、JUC线程池和Spring线程池的弊端。起因:分布式换环境下的定时任务问题❓......
  • 读者-写者(多线程)
     一、同步互斥问题-读者写者问题之写者优先(一)问题要求抽象解释:多个进程访问一个共享的数据区读者(读进程)只能读数据,写者(写进程)只能写数据适用于数据库、文件、内存......
  • 读者-写者(多线程)
    读者-写者(多线程)0推荐在openEuer上实现1描述操作系统中“读者-写者”问题,理解问题的本质,提交你理解或查找到的文本资料2利用多线程完成reader和writer3在main中测......