Я использую Tomee 7.1.0 с tomcat 8.xx Согласно документации tomcat, по умолчанию Http maxthreadcount 200 и acceptCount 100. Насколько я понимаю, Tomcat получит максимум 300 запросов.200 запросов будут обработаны, 100 будут в очереди, а более 300 получат тайм-аут соединения согласно их документации.
Я написал простую службу Rest и держу запрос внутри метода rest с помощью Thread.sleep в течение 5 минут.
Запустил Tomcat и, используя JConsole, я отслеживаю количество потоков (Catalina ->Пул потоков -> http-nio-8080- Attributes) CurrentThreadsBusy равно 0 и количество подключений равно 1. Если отправить запрос 450, CurrentThreadsBusy равно 200, что соответствует их документации, но ConnectionCount равен 450, и мой REst-клиент должен получить CONNECTIONВРЕМЯ, но я не понял, почему?
Каждый входящий запрос требует потока на время этого запроса.Если будет получено больше одновременных запросов, чем может быть обработано доступными в настоящее время потоками обработки запросов, дополнительные потоки будут созданы до настроенного максимума (значение атрибута maxThreads).Если получено еще больше одновременных запросов, они складываются внутри сокета сервера, созданного Соединителем, до настроенного максимума (значение атрибута acceptCount).Любые дальнейшие одновременные запросы будут получать ошибки «отказано в соединении», пока ресурсы не будут доступны для их обработки.
Почему мой клиент не получил исключение CONNECTION TIMEOUT после запроса 300?
КакОставшиеся (150) запросы ожидают в очереди?