acceptQueueSize
Если я правильно понимаю, это параметр TCP более низкого уровня, который контролирует количество входящих соединений, которые будут отслеживаться, когда серверное приложение действительно принимает () с меньшей скоростью, чем скорость входящих соединений. Смотрите второй аргумент для http://download.oracle.com/javase/6/docs/api/java/net/ServerSocket.html#ServerSocket(int,%20int)
Это что-то совершенно иное, чем количество запросов в очереди в Jetty QueuedThreadPool. Запросы, находящиеся в очереди, уже полностью подключены и ожидают, когда поток станет доступным в пуле, после чего их обработка может начаться.
У меня похожая проблема. У меня есть сервлет с процессором (почти нет ввода-вывода или ожидания, поэтому асинхронность не может помочь). Я могу легко ограничить максимальное количество потоков в пуле Jetty, так что издержки на переключение потоков останутся в стороне. Однако я не могу ограничить длину запросов в очереди. Это означает, что с ростом нагрузки соответственно увеличивается время отклика, а это не то, чего я хочу.
Я хочу, чтобы, если все потоки были заняты и число запросов в очереди достигало N, чтобы потом возвращать 503 или какой-либо другой код ошибки для всех дальнейших запросов, вместо того, чтобы постоянно увеличивать очередь.
Мне известно, что я могу ограничить количество одновременных запросов к серверу Jetty с помощью балансировщика нагрузки (например, haproxy), но можно ли это сделать только с Jetty?
P.S.
После написания этого я обнаружил фильтр JetS DoS, и кажется, что он может быть настроен на отклонение входящих запросов с 503, если превышен предварительно настроенный уровень параллелизма: -)