我正在使用Undertow XNIO开发自定义Web应用程序,在该应用程序中,我需要为每个servlet使用不同的线程池(我希望每个servlet都有专用的线程数量)。在接收混合请求时,此Web应用程序具有非常高的吞吐量要求,其中一些请求最终阻塞了我为XNIO创建的所有线程。有没有一种方法可以基于每个servlet指定线程数?
这是我当前的代码:
DeploymentInfo servletBuilder = deployment()
.setClassLoader(MiniSite.class.getClassLoader())
.setContextPath(PATH)
.setDeploymentName("handler.war")
.addServlets(
servlet("BenchMark", BenchMark.class)
.addMapping("/health"),
servlet("q1", q1.class)
.addMapping("/q1"),
servlet("q2", q2.class)
.addMapping("/q2"),
servlet("q3", q3.class)
.addMapping("/q3"),
servlet("config", Configuration.class)
.addMapping("/config")
);
DeploymentManager manager = defaultContainer().addDeployment(servletBuilder);
manager.deploy();
HttpHandler servletHandler = manager.start();
PathHandler path = Handlers.path(Handlers.redirect(PATH))
.addPrefixPath(PATH, servletHandler);
Undertow server = Undertow.builder()
.addHttpListener(80, "0.0.0.0")
.setHandler(path)
.setWorkerThreads(1000)
.setIoThreads(500)
.build();
server.start();