我正在使用Spring Boot和嵌入式Tomcat(8),在app.prop文件中我们有两个选项:
server.tomcat.max-connections = 1000
server.tomcat.max-threads= 20
我从Tomcat文档中了解到,第一个选项是服务器可以处理的最大连接数,第二个选项是Tomcat线程池中的最大线程数。在此之后,我明白了,连接和请求不是我以为的同一个词。接着,我阅读了这个主题
该主题的主要观点如下:
Thread per request will create a thread for each HTTP Request the server receives
Thread per connection will reuse the same HTTP Connection from multiple requests
在“重用相同的HTTP连接”这句话之后,我查看了Http keep-alive。
概念:在响应后,服务器和客户端能够保持开放的连接。
但是这是如何实现的呢?我的意思是,当我向服务器发送请求时,线程池中的一个线程将接收我的请求,然后向我发送一个请求。根据“Http keep-alive”的规定,我的连接不会关闭。它存储在哪里?当我发送另一个请求时会发生什么?是否同一个线程会处理我的请求?