java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
最近在研究tomcat的连接超时问题,环境:jdk1.8 + springboot 2.1.1.RELEASE,以下仅为个人理解,如果异议,欢迎指正。
springboot的tomcat的几个配置参数:
server:
tomcat:
accept-count: 1000 #挂起的最大连接数,默认100,最终会体现在这里 public abstract ServerSocketChannel bind(SocketAddress local, int backlog) throws IOException; socket.listen(backlog),也就是server在不能执行accept()之前,能监听的client的最大数量
max-connections: 2000 #最大连接数,默认10000,tomcat内tcp连接池的大小
max-threads: 300 #最大线程数,默认200
min-spare-threads: 50
connection-timeout: 60000 #server端的socket超时间,默认60s, client端设置keepAlive或者server端tcp状态为CLOSE_WAIT(比如client先close),server端判断client端没有读写并且超时时会close掉当前的socket
accesslog:
enabled: true
port: 34121
servlet:
context-path: /second-area
关系图如下