繁体   English   中英

如何设置Jetty接受的最大连接数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM