问题:限制 Tomcat 容器中每个已部署应用程序的线程数。这样没有一个部署的组件可以占用所有资源。
在 weblogic 世界中,我使用具有最小和最大线程约束的工作管理器,然后为每个部署指定该应用程序的工作管理器。
我已经阅读了可以设置线程约束的Executors ;但仅限于连接器级别。一个可用的愚蠢技巧是确保我的客户对单个 tomcat 实例使用不同的端口,然后为每个Connector组织不同的Executor,但这似乎效率低下。
问题:有没有比提出的愚蠢想法更好的解决方案?
例子
deploymentA 应该分配最少 5 个线程和最多 10 个线程
deploymentB 应该分配最少 10 个线程和最多 50 个线程
愚蠢的解决方案
<Executor name="exeOne" maxThreads="10" minSpareThreads="5" maxQueueSize="10" />
<Executor name="exeTwo" maxThreads="50" minSpareThreads="10" maxQueueSize="10" />
<Connector port="11400" executor="exeOne" />
<Connector port="11500" executor="exeTwo" />
让部署的客户/用户仅调用端口 11400。让部署 B 的客户端/用户仅调用端口 11500。