問題: Tomcat コンテナーにデプロイされた各アプリケーションのスレッド数を制限します。展開された 1 つのコンポーネントがすべてのリソースを独占できないようにします。
weblogic の世界では、最小スレッドと最大スレッドの制約を指定してワークマネージャーを使用し、デプロイごとにそのアプリケーションのワークマネージャーを指定しました。
スレッドの制約を設定できるエグゼキューターについて読みました。ただし、コネクタレベルのみです。利用可能な愚かなトリックの 1 つは、クライアントが単一の 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" />
deploymentA のクライアント/ユーザーにポート 11400 のみを呼び出してもらいます。deploymentB のクライアント/ユーザーに、ポート 11500 のみを呼び出してもらいます。