ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、线程数限流 ![](https://img.kancloud.cn/a4/41/a44157b0a0aa24f4ee9d12817226b9af_667x436.png) * 资源名称:表示我们针对哪个接口资源进行流控规则配置,如:“/sysuser/pwd/reset” * 针对来源:表示针对哪一个服务访问当前接口资源的时候进行限流,default表示不区分访问来源。如填写服务名称:aservice-xxxx,表示aservice-xxxx访问前接口资源的时候进行限流,其他服务访问该接口资源的时候不限流。 * 阈值类型/单机阈值:线程数。**表示开启n个线程处理资源请求。** * 流控模式:直接,当所有线程都被占用时,新进来的请求就直接限流 * 流控效果:快速失败。很简单的说就是达到限流标准后,请求就被拦截,直接失败。(HTTP状态码:429 too many request) 上面的限流规则用一句话说:**对于任何来源的请求,aservice-rbac服务端“/sysuser/pwd/reset”资源接口的2个线程都被占用的时候,其他访问失败!** ## 二、流控效果测试 参考Hystrix章节的《Jemeter模拟触发服务熔断》创建Jemeter接口测试用例。为了更明显的触发流控规则:配置一秒钟发送30个请求。 ![](https://img.kancloud.cn/78/59/785973f48fd2af0623912b946948900a_433x142.png) * sentinel控制台线程数单机阈值=1,aservice-rbac服务开启1个线程处理“/sysuser/pwd/reset”资源请求,所以30 \* 5/6的请求被限流。 * sentinel控制台线程数单机阈值=2,aservice-rbac服务开启2个线程处理“/sysuser/pwd/reset”资源请求,所以30 \* 4/6的请求被限流。 * sentinel控制台线程数单机阈值=3,aservice-rbac服务开启3个线程处理“/sysuser/pwd/reset”资源请求,所以30 \* 3/6的请求被限流。 下图中绿色表示请求成功,红色表示请求失败(被限流)! ![](https://img.kancloud.cn/66/85/668503feb4fd29c6ec9cfa8310bb08c4_783x627.png) 我的测试结果比较圆满,很景精确的解释了线程数与限流请求数之间的关系。但是在实际生产环境下,环境、网络等原因流控结果不一定是如此精确的和线程数成比例的。