4

我们使用 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 )));
4

1 回答 1

0

SelectChannelEndPoint 是此日志消息的来源。

要看不到它,只需将您的命名记录器设置org.eclipse.jetty.io.nio.SelectChannelEndPoint为 LEVEL=OFF。

现在至于为什么看到它,这对 Jetty 的开发人员来说更有趣。您能否详细说明您正在使用的 Jetty 的具体版本以及您正在使用的具体 JVM?

于 2013-05-18T01:43:38.810 回答