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);
我有如上所述的Jetty(8.0)设置。但由于我的文件很大,我需要定义允许的最大连接数。我该怎么办?
答案 0 :(得分:1)
尝试以下方法:
QueuedThreadPool tp = (QueuedThreadPool) server.getThreadPool();
tp.setMaxThreads(10);
server.setThreadPool(tp);
答案 1 :(得分:0)
我建议使用Quality of Service过滤器将其限制为特定数字,而不是尝试以这种方式使用线程池。这种方式可以锁定应用程序中的特定位置,或者特定的servlet路径,而不会影响整个Web应用程序。
http://www.eclipse.org/jetty/documentation/current/qos-filter.html
[编辑] 我建议使用DefaultServlet在这里提供静态内容,它通常更好,因为它支持缓存和范围(资源处理程序已经改进了Jetty 9中的一些)。
答案 2 :(得分:0)
在考虑了@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);