【杂谈】Spring Boot 默认支持的并发量
Spring Boot应用支持的最大并发量是多少?
Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。当在配置文件中敲出max后提示值就是它的默认值。
我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000。

并发量指的是连接数,还是线程数?
当然是连接数。
200个线程如何处理10000条连接?
Tomcat有两种处理连接的模式,一种是BIO,一个线程只处理一个连接,另一种就是NIO,一个线程处理多个连接。由于HTTP请求不会太耗时,而且多个连接一般不会同时来消息,所以一个线程处理多个连接没有太大问题。
为什么不开几个线程?
多开线程的代价就是,增加上下午切换的时间,浪费CPU时间,另外还有就是线程数增多,每个线程分配到的时间片就变少。多开线程≠提高处理效率。
那增大最大连接数呢?
增大最大连接数,支持的并发量确实可以上去。但是在没有改变硬件条件的情况下,这种并发量的提升必定以牺牲响应时间为代价。
对了,配置文件明明就是空的,这些提示内容是哪里加载的?
默认生成的配置文件确实是空的,就是普通的文本文件,不要错以为这些内容是被隐藏掉的。首先是IDE要支持,IDE支持Spring Boot项目就知道该从哪里加载数据。Spring Boot的默认配置信息,都在 spring-boot-autoconfigure-版本号.jar 这个包中。其中上述Tomcat的配置在/web/ServerProperties.java中。下图是用jd-gui反编译看的,你也可以在spring boot项目中找到依赖包查看。


【杂谈】Spring Boot 默认支持的并发量的更多相关文章
- Spring Boot 默认支持的并发量
Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值 ...
- Spring Boot默认日志logback配置解析
前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...
- spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的?
spring boot / cloud (十九) 并发消费消息,如何保证入库的数据是最新的? 消息中间件在解决异步处理,模块间解耦和,和高流量场景的削峰,等情况下有着很广泛的应用 . 本文将跟大家一起 ...
- Spring Boot默认的JSON解析框架设置
方案一:启动类继承WebMvcConfigurerAdapter,覆盖方法configureMessageConverters ... @SpringBootApplication public cl ...
- spring boot默认访问静态资源
演示spring boot默认可以直接访问静态资源的2种方法: 第一种:在src/main/resources资源目录下创建一个名为"static"的文件夹(该文件夹的名称是规定死 ...
- Spring boot 默认静态资源路径与手动配置访问路径的方法
这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 ...
- Spring Boot 版本支持对应JDK
转自:http://www.cnblogs.com/oumi/p/9241424.html 一.Spring Boot 版本支持 Spring Boot Spring Framework Java M ...
- Spring Boot 默认指标从哪来?
了解有关 Spring Boot 默认指标及其来源的更多信息. 您是否注意到 Spring Boot 和 Micrometer 为您的应用生成的所有默认指标? 如果没有 - 您可以将 actuator ...
- Spring Boot 版本支持
一.Spring Boot 版本支持 Spring Boot Spring Framework Java Maven Gradle 1.2.0之前版本 6 3.0+ 1.6+ 1.2.0 4.1. ...
随机推荐
- python 函数进阶与闭包
函数的命名空间和作用域 引言 现在有个问题,函数里面的变量,在函数外面能直接引用么? def func1(): m = 1 print(m) print(m) #这行报的错 报错了: NameErro ...
- Python中单引号,双引号,3个单引号及3个双引号的区别
单引号和双引号在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python" str1和str2是没有任何区 ...
- [费用流][BZOJ1070]修车
修车 题目描述 同一时刻有位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均 ...
- win7访问局域网总提示用户名密码错误解决方案
win7访问局域网总提示用户名密码错误解决方案 1.点击开始-在搜索栏输入:secpol.msc(或者直接按下win+r键,输入secpol.msc),打开本地安全策略. 2.找到“安全设置”的“本地 ...
- SQL SERVER中LIKE在Char和nChar输出结果不一致解惑
一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人 ...
- C#当中的扩展方法
先说有用的,c#扩展方法结论: 扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型.扩展方法必须是静态方法,可以像实例方法一样进行调用.且调用同名中实际定义的 ...
- html-day06
html-day06 1.定位 定位: 1.普通流定位 普通流,又称为文档流 块级元素:从上到下一个一个的排列 行内元素:一行内从左到右的排列 2.浮动定位 1.什么是浮动定位 将元素排除在普通流之外 ...
- C++基础笔记(string截取)
#include <iostream> #include <string> using namespace std; int main(int argc, char* argv ...
- Mac 下 Java 多版本切换
Step 1: 安装 jdk1.7 jdk1.8 路径如下: + /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk + /Library/Java/J ...
- springboot之使用redistemplate优雅地操作redis
概述 本文内容主要 关于spring-redis 关于redis的key设计 redis的基本数据结构 介绍redis与springboot的整合 sringboot中的redistemplate的使 ...