开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情
Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。当在配置文件中敲出max后提示值就是它的默认值,我们可以看到默认设置中,Tomcat默认的最大工作线程数为200(Springboot 默认tomcat最大线程数),最小为10。
springboot配置servlet容器
springboot中默认可以集成多种servlet容器,当引入如下依赖时
springboot默认以tomcat作为项目的servlet容器,如果用户想要替换tomcat为jetty或者undertow,只需要做以下更改:
通过application.yaml配置tomcat
并发数(工作线程数,默认就是200,最小10,按需求配置) server.tomcat.threads.max=200
可维持请求数(默认是8192,不知道这个数字怎么来的,但是官网文档是这样写的) server.tomcat.max-connections=8192
当所有可能的请求处理线程都在使用时,传入的连接请求的最大队列长度。 server.tomcat.accept-count=100
设置请求超时时间 server.tomcat.connection-timeout: 30s
设置等待队列的请求的等待超时时间 server.tomcat.keep-alive-timeout: 60s
配置Tomcat编码,默认为 server.tomcat.uri-encoding = UTF-8
要注意的是,当最大请求连接数小于最大线程数时,tomcat处理(最大并发)以最大连接数为准。
HTTPS 配置
由于 HTTPS 具有良好的安全性,在开发中得到了越来越广泛的应用。
配置说明:
server.ssl.key-store=hangge.p12 #server.ssl.key-store:表示密钥文件名
server.ssl.key-alias=tomcathttps #server.ssl.key-alias:表示密钥别名
server.ssl.key-store-password=123456 #server.ssl.key-store-password:即前面创建证书过程中输入的密码
jdk 提供的数字证书管理工具 keytool 在 \jdk\bin 目录下。我们在终端中执行如下命令自行生成一个数字证书:
命令参数说明:
-genkey:表示要创建一个新的密钥
-alias:表示 keystore 的别名
-keyalg:表示使用的加密算法是 RSA(一种非对称加密算法)
-keysize:表示密钥的长度
-keystore:表示生成的密钥存放位置
-validity:表示密钥的有效时间(单位为天)
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore hangge.p12 -validity 365
上述命令执行过程中会要求输入密钥口令等信息,我们根据提示一步步输入即可。最终会在当前目录下生成一个 hangge.p12 的文件,复制到项目的根目录下,配置中直接引入。