Apache Jakarta (Tomcat) コネクタの負荷分散機能を使用して、これまで解決できなかったユース ケースが 1 つあります。
Apache Tomcat コネクタが 1 つ接続されている IIS サイトが 1 つあります。要求された URI に応じて、トラフィックを別の Tomcat に「転送」する必要があります。特定のコンテキスト (/app1、/app2 など) を持つアプリしかない場合は、非常に簡単に実行できます。私の問題は、/ (ROOT) にある 1 つのアプリ (1 つの Tomcat 内) と /app1 にある別の 1 つのアプリ (別の Tomcat 内) があることです。
uriworkermap.properties で次の構成を試しました。
/*=loadBalancer1
/app1/*=loadBalancer2
しかし、「loadBalancer1」がすべてのトラフィックを取得するため、これは機能しません。/app1/* は /* (正規表現) に一致するため、「loadBalancer2」は無視されますが、これは理にかなっています。
私も除外を追加しようとしました:
/*=loadBalancer1
!/app1/*=loadBalancer1
/app1/*=loadBalancer2
しかし、「loadBalancer1」がまだすべてのトラフィックを取得しているため、これも機能しませんが、その「/app1/*」URI パターンを無視しているだけです。「loadBalancer2」は単に無視されます。
2 つの IIS サイトを持つことも、/ (ROOT) にあるアプリを Tomcat の別のコンテキスト パスに移動することもできないことを念頭に置いて、何か提案はありますか?
ありがとうございました
編集: Apache Tomcat コネクタを 1 つだけ使用する代わりに、同じ IIS サイトの Tomcat ごとに 1 つのコネクタを使用します。
uriworkermap.properties #1: / (ROOT) でアプリを使用する Tomcat の場合
/*=wlb
!/app1/*=wlb
uriworkermap.proerties #2: /app1 にアプリがある Tomcat の場合
/app1/*=wlb
コネクタ #1 は URI "/app1/*" のトラフィックを無視しますが、コネクタ #2 はそれをキャッチします (逆も同様です)。
これで、さまざまな VM オプションとメモリ割り当てをアプリに設定できるようになりました。
私はコメントやより良い解決策を受け入れています..