jetty 10中setQueue的等效方法是什么?



正在考虑setThreadPool()功能

QueuedThreadPool的构造函数有多种变体,可以满足您的需要。

作为一般提示,如果在升级过程中没有找到setter,请检查同一类的构造函数。另外,如果你使用的是最新的Jetty 9。请在构建期间启用已弃用的方法和类报告,因为这些方法和类报告为您提供了在升级之前需要解决的代码线索(检查javadoc中替换的相同类)。

重要提示:不要用硬队列限制来限制QueuedThreadPool,这会严重影响服务器性能和可伸缩性。

传统上,在Jetty的6天里,人们会试图通过操纵线程来限制Jetty可以做的事情,这是可行的。

但是在Jetty 7和Jetty 8的过程中,这变得站不住脚了(你可以感谢各种EE规范的改变)

当Jetty 9出现时,试图通过操纵ThreadPool来影响行为已经不可靠了。

现在在Jetty 10上,为了对Jetty施加各种限制而操纵线程池实际上是对可靠性有害的。

但是一切都没有失去,有许多现有的(和更好的)技术(自Jetty 7天以来)来限制Jetty上的行为:请求,资源,连接,池等

另一个选项,如果你关心,是不使用Jetty默认的QueuedThreadPool,而只是使用一个标准的javajava.util.concurrent.ThreadPoolExecutor包装的org.eclipse.jetty.util.thread.ExecutorThreadPool,你传递给Jettynew Server(ThreadPool)构造函数。您将失去Jetty内置的调试和转储功能,但它将正常工作。

Server server = new Server();
HttpConfiguration httpConfig = new HttpConfiguration();
ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(httpConfig));
// Set the maximum queue size to 100
connector.setQueueCapacity(100);
server.setConnectors(new Connector[] { connector });
// Start the server
server.start();

相关内容

  • 没有找到相关文章

最新更新