[英]How to set the max connection accepted on Jetty
final SslSocketConnector conn = new SslSocketConnector(sslContextFactory);
conn.setReuseAddress(true);
conn.setPort(port);
ResourceHandler resources = new ResourceHandler();
resources.setCacheControl("no-cache");
resources.setDirectoriesListed(true);
resources.setWelcomeFiles(new String[] { "abc.blank" });
resources.setResourceBase(fileLoc);
server.setConnectors(new Connector[] { conn });
server.setHandler(resources);
我有如上所述的码头(8.0)设置。 但是由于文件很大,因此我需要定义允许的最大连接数。 我应该设置什么?
请尝试以下操作:
QueuedThreadPool tp = (QueuedThreadPool) server.getThreadPool();
tp.setMaxThreads(10);
server.setThreadPool(tp);
我建议使用“服务质量”过滤器将其限制为一个特定的数字,而不是尝试以这种方式使用线程池。 这样可以锁定应用程序中的特定位置,或锁定此位置的特定servlet路径,而不会影响整个Web应用程序。
http://www.eclipse.org/jetty/documentation/current/qos-filter.html
[edit]并且我建议在这里使用DefaultServlet来提供静态内容,因为它支持缓存和范围(通常在Jetty 9中对资源处理程序进行了一些改进),它通常会更好。
在考虑@wolfrevo建议的解决方案后,这对我有用
QueuedThreadPool tp = new QueuedThreadPool(1);
// This will keep requests in queue until the current job is over
// or client times out.
tp.setMaxQueued(connectionCount);
tp.setMaxThreads(threadCount);
tp.setMaxIdleTimeMs(maxIdle);
server.setThreadPool(tp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.