gpt4 book ai didi

java - 将 Tomcat 线程专用于 servlet

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:28 25 4
gpt4 key购买 nike

有没有办法配置 tomcat 来为特定的 servlet 或 web 服务保留线程?我知道这可能可以在 servlet 过滤器中以编程方式完成。

假设我使用 250 个服务线程的默认配置,但我希望其中的 20 个保留给特定的 servlet/web 服务?

也许这显然是不可能的 - 如果可以,有人可以解释为什么吗?

我使用的是 tomcat 6。

最佳答案

根据 servlet 规范,这是不可能的。但是,在 Tomcat 中,您可以定义在不同端口上运行的多个连接器。每个连接器都有一个单独的线程池:

<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="10443" />

您将在 Tomcat 的 /conf 目录下的 server.xml 文件中找到有关如何配置线程池的示例。

现在您可以使用 8080(默认)和 8081(以上配置)访问您的 Web 应用程序。通过 8081 的请求将使用不同的线程池。您现在要做的就是将所有 servlet 路由到 8080,并将您的特定线程路由到 8081(使用完全独立的线程池)。

如果您不希望有人滥用此功能,请添加一个 servlet 过滤器以根据请求的 URI 检查是否使用了正确的端口。


但是阅读你的理由:

I have a specific synchronous service that locks up a lot of the serving threads

您最好启动和管理自己的线程池(查看 ExecutorService )并使用异步 servlet。更加简单和便携。

关于java - 将 Tomcat 线程专用于 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12583692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com