我们使用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 )));
答案 0 :(得分:0)
SelectChannelEndPoint is the origin of this log消息。
要看不到它,只需将org.eclipse.jetty.io.nio.SelectChannelEndPoint
的命名记录器设置为LEVEL = OFF。
至于为什么你看到它,这对Jetty的开发者来说更有趣。您能详细说明您正在使用的Jetty的特定版本以及您正在使用的特定JVM吗?