Мы используем Jetty 8.1 в качестве встроенного HTTP-сервера. В условиях перегрузки сервер иногда начинает заливать лог-файл такими сообщениями:
warn: java.util.concurrent.RejectedExecutionException
warn: Dispatched Failed! SCEP@76107610{l(...)<->r(...),d=false,open=true,ishut=false,oshut=false,rb=false,wb=false,w=true,i=1r}...
Одно и то же сообщение повторяется тысячи раз, и объем ведения журнала замедляет работу всей системы. С самими сообщениями все в порядке, наш обработчик запросов просто замедляет обработку запросов во времени. Но огромное количество повторяющихся сообщений на самом деле ухудшает ситуацию и затрудняет восстановление системы после перегрузки.
Итак, мой вопрос: это нормальное поведение или мы делаем что-то не так? Вот как мы настроили сервер:
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setAcceptQueueSize( 10 );
server.setConnectors( new Connector[]{ connector } );
server.setThreadPool( new ExecutorThreadPool( 32, 32, 60, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>( 10 )));