开拓者Amadues 2021-07-24 22:33:42
如果请求数超过了Servlet最大处理数,有没有排队(阻塞)机制,还是直接返回错误(未处理)?
...全文
641 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
=PNZ=BeijingL 2021-07-25
精选
  • 打赏
  • 举报
回复

有的, 比如Tomcat, JBoss 处理请求都是使用线程池, 线程池就有最大线程,最小线程, 到达最大线程后进入队列,队列满了就执行处理策略, 一般是拒绝连接, 一般是配置到 Connector 中,你可以查一下线程池的相关资料

开拓者Amadues 2021-07-25
  • 举报
回复
@=PNZ=BeijingL 那最大线程处理数量加上队列最大等待的数量,这个数量是怎么来的?
=PNZ=BeijingL 2021-07-25
  • 举报
回复
@开拓者Amadues Tomcat中Connector 可配安置的参数 1. maxConnections tomcat允许接收和处理的最大链接数,对于BIO而言此值默认与maxThreads参数一样,对于NIO而言此值默认为10000。对于tomcat已经接受和正在处理的线程数达到此值,server将允许继续accept新链接但是不会处理它们,这些链接将会被阻塞直到连接数降低到此值(server将不会从这些socket中读取数据,而是将它们的句柄buffer起来)。最终server是否可以继续accept新的链接,取决于acceptCount值,因为此值是在创建ServerSocket时传递的参数,超过此值后,链接请求将会被拒绝。 2.acceptCount 当tomcat请求处理线程池中的所有线程都处于忙碌状态时,此时新建的链接将会被放入到pending队列,acceptCount即是此队列的容量,如果队列已满,此后所有的建立链接的请求(accept),都将被拒绝。默认为100。在高并发/短链接较多的环境中,可以适当增大此值;当长链接较多的场景中,可以将此值设置为0 3.maxThreads 用于接收和处理client端请求的最大线程数,tomcat底层将采取线程池的方式来处理客户端请求,此参数标识这线程池的尺寸.maxThreads意味着tomcat能够并发执行request的个数.此值默认为200
开拓者Amadues 2021-07-25
  • 举报
回复
@=PNZ=BeijingL 谢谢

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧