tomcat处理高并发的一些探索

一、tomcat的三个重要配置

1、maxConnections:最大连接数

解释: 在同一时间下,tomcat能够接收的最大连接数。

默认值:

java的阻塞式BIO:默认值是maxthreads的值

在BIO使用定制的Executor执行器:默认值是执行器中的maxthreads值

java新的NIO模式:默认值10000

注意: 如果设置为-1,则禁用maxConnections,代表不限制tomcat的连接数

2、accept-count:最大等待数

解释: 当所有的请求处理线程都被使用时,所能接收的请求队列长度,超过长度,则请求拒绝

默认值: 100

3、maxThreads:最大线程数

解释: 每一次http请求,tomcat都会创建一个线程来处理请求,最大线程数,即决定了Web服务能同时处理多少个请求

默认值: 200(开的线程越多,cpu消耗也越多)

二、其他

线程可以开很多,一般一个线程需要1MB,4G内存就可以开2000个线程(系统会预留一半)

但是问题来了,如果2000个线程同时跑起来,那你服务器的cpu估计就废掉了,所以一般单机单cpu线程开100~200个已经足够处理普通高并发,如果真的还能解决问题,那么就得换成集群分布式来解决了

经验分享 程序员 微信小程序 职场和发展