Ken*_*hin 8 java connection multithreading glassfish request
请参阅附图,请帮助我理解线程池(最大和最小线程池大小),接受器线程及其最大连接数和HTTP最大连接数之间的关系.
线程池:
HTTP:
运输TCP:
首先,我会给你一些官方文件
线程池是服务器可以处理的最大并发请求数.服务器有一个等待由线程处理的连接队列.
请记住,一个线程将是一个很长的请求生命.也就是说,不仅在从套接字读取HTTP请求时,或者在向客户端写入HTTP响应时,而且它始终处理业务逻辑,等待数据库完成,写入日志文件,发送/接收WS mehtods,......
阅读:https://docs.oracle.com/cd/E18930_01/html/821-2431/abehk.html
HTTP Server正在侦听客户端请求,并且每个客户端都有一个关联的连接队列,其中请求排队等待线程池中的线程处理.
这是等待提供排队请求的线程所在的位置.
阅读:https://docs.oracle.com/cd/E18930_01/html/821-2431/abegk.html
是一个数字,表示可以随时accept mode为每个侦听套接字保留服务器的线程数.Oracles文档建议将此数字设置为低于CPU数量的数量.
也就是说,这是同时读/写的套接字的数量.你可以想到与线程池的直接关系,但是记住一个线程不仅要读/写客户端,还要处理请求.
阅读:http://docs.oracle.com/cd/E18930_01/html/821-2431/gkxjt.html
因此,您的服务器将为每个客户端(侦听套接字)设置一个队列,其中只能有Max Connections.这个连接将由一个线程池处理,同时它不能超过Acceptor Threads处理/接受的套接字.
如果客户端请求等待超时,则会被拒绝.Min Thread Pool确保您拥有最少的线程,随时可以处理.和最大连接数限制总的听插座就可以了等待.如果超出此最后限制,将拒绝新连接.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
7548 次 |
| 最近记录: |