springboot 单点并发上限调整

springboot 内置 tomcat 的并发限制因素

最大线程数

springboot 内置 tomcat 最大线程数默认 200

#最大并发数,默认200
server.tomcat.threads.max=600

最大连接数


mysql 的并发限制因素

最大连接数

查看最大连接数

mysql> show variables like “%max_connections%”;
±----------------±------+
| Variable_name | Value |
±----------------±------+
| max_connections | 5000 |
±----------------±------+
1 row in set (0.00 sec)

修改最大连接数

MySQL 最大连接数的默认值是 100,这个数值对于并发连接很多的数据库应用是远不够用的。当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些。在使用 MySQL 数据库的时候,经常会遇到一个问题,就是 "Can not connect to MySQL server. Too many connections" -mysql 1040 错误,这是因为访问 MySQL 且还未释放的连接数已经达到 MySQL 的上限。通常,MySQL 的最大连接数默认是 100,,最大可以达到 16384。

常用的修改最大连接数的两种方式如下:
第一种:命令行修改最大连接数 (max_connections),设置最大连接数为 1000。

mysql> set global max_connections = 1000;

这种方式有个问题,就是设置的最大连接数只在 MySQL 当前服务进程有效,一旦 MySQL 重启,又会恢复到初始状态。因为 MySQL 启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。

第二种:通过修改配置文件来修改 MySQL 最大连接数 (max_connections)。
进入 MySQL 安装目录,打开 MySQL 配置文件 my.ini 或 my.cnf 查找 max_connections=100,修改为 max_connections=1000,重启 MySQL 服务即可。

mybatis 的并发上限

spring.datasource.name=druidDataSource
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.1.1:13306/test?useUnicode=true&characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456test
spring.datasource.filters=stat,wall,log4j,config
spring.datasource.max-active=100
spring.datasource.initial-size=1
spring.datasource.max-wait= 60000
spring.datasource.min-idle=1
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validation-query=select 'x'
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
spring.datasource.pool-prepared-statements=true
spring.datasource.max-open-prepared-statements=50
spring.datasource.max-pool-prepared-statement-per-connection-size=20