Sentinel流控,QPS和线程数区别?

前言:

今天学到使用Sentinel进行服务流控,然后在使用可视化操作时这个QPS跟并发线程数把我搞迷糊了,硬是没看出来他两实质性的区别是啥。。。后面经过查资料发现,区别还是有的,下面将介绍一下

 QPS:

每秒查询率(QPS,Queries-per-second)是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

规定时间  ---- 最多处理多少流量

也就是该接口  能访问多少次。

线程数:

web项目中的线程数,表示web请求进来服务器,tomcat开启几个线程来处理这些web请求。
下面是我的tomcat配置信息:

server:
  tomcat:
    accept-count: 100  #等待队列长度 默认100
    threads:
      max: 20   #最大工作线程数 默认20
      min-spare: 5  #最小工作空闲线程数 默认10
    max-connections: 20 #最大连接数 默认10000

现在我给我的tomcat设置的最大线程数为20

下面是请求代码

@GetMapping("findAll")
    @ApiOperation(value = "查询所有的菜品")
    public Map<String, Object> findAll() {
//        Thread thread = Thread.currentThread();
//        set.add(thread);
//        log.info("线程数为:" + set.size() + ",当前线程编号: " + thread.getId());

//        try {
//            Thread.sleep(2000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }

        Map<String, Object> map = new HashMap<>();
        List<Resfood> list = null;
        try {
            list = this.resfoodBiz.findAll();
        } catch (Exception e) {
            map.put("code", 1);
            map.put("msg", e.getCause());
            return map;
        }
        map.put("code", 1);
        map.put("obj", list);
        return map;
    }

jmeter测试:

模拟4000次并发请求  线程数阈值设置20

此时控制台打印最多20是因为我们设置的最大线程数20 

若此时阈值改为10,则最多打印10

这样应该就能好理解一点了

总结

QPS:单位时间内,请求接口次数限制。==》接口次数

单台机器所有入口流量的次数

线程数:单位时间内,请求并发数限制。==》并发次数

单台及其所有入口流量的并发线程数==》tomcat起了多少个线程==》Servlet容器

细品= =

后续

流控关联模式又是干嘛的嘞

 这个好理解,当出现资源争抢时,当前资源给被关联资源让路

巴拉巴拉。。。

发现了一个写的很好的文章,还带动态图,可以不用自己截图了,哈哈哈

借鉴:

sentinel流控模式之关联类型_sentinel 关联_云川之下的博客-CSDN博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值