埋め込まれた jetty アプリ (6.1.26 jetty を使用) には、2 つのコンテキスト ハンドラーが登録されています。どちらも同じポートでリッスンしています。以下はサンプルです。
Server s = new Server();
Connector c = new SelectChannelConnector();
((SelectChannelConnector)connector).setAcceptors(2);
connector.setHost(IP);
connector.setPort(port);
server.addConnector(connector);
ContextHandler context1 = new ContextHandler();
context.setContextPath("/abc");
context.setHandler(handler1);
context.setAllowNullPathInfo(true);
ContextHandler context2 = new ContextHandler();
context2.setContextPath("/xyz");
context2.setHandler(handler2);
context2.setAllowNullPathInfo(true);
ContextHandlerCollection hc = new ContextHandlerCollection();
hc.addHandler(context1);
hc.addHandler(context2);
server.setHandler(hc);
server.start();
サーバーレベルで設定されたスレッドプールも使用しています。1 つのコンテキストにリクエストを送信し、すべてのスレッドが使用されるように負荷をかけると、2 番目のコンテキストにリクエストを送信すると、2 番目のコンテキストへのリクエストを処理するのに時間がかかります。
私もSelectChannelConnectorレベルでスレッドプールを設定して試してみました。また、同じホスト/ポートを使用してコネクタを追加して、それぞれが独自のスレッド プールを持つようにしてみました。
私の要件は、1 つのコンテキストに負荷がかかっているときに、他のコンテキスト (ポートは同じ) が処理を遅らせてはならないということです。
コンテキストごとに専用のスレッド プールを使用できますか? 他の回避策はありますか。これへの返信に感謝します。
ありがとうサラス