1

私は現在、非同期シナリオでプレイ 2.0 フレームワークを評価しています。以下のような実験をしました。

def test = Action {
  val futureResponse: Future[play.libs.WS.Response] = scala.concurrent.Future {
    val remoteCall = WS.url("http://127.0.0.1:8080/slowweb/SlowServlet1").get();
    remoteCall.get(); 
  }
  Async {
    futureResponse.map(response => Ok("Got result: " + response.getBody()))
  }
}

":8080/slowweb/SlowServlet1" は、遅い Web サービス呼び出しのシミュレーションであり、戻るのに 2 秒かかります。

次に、エンドポイント「:9000/test」に対して jmeter を実行します。次の動作を確認しました。jmeter で 50 スレッドを実行すると、forkjoin プール サイズは 50 になります。jmeter で 200 スレッドを実行すると、forkjoin プール サイズは 200 になります。

スレッドプールのサイズは同時リクエストのサイズと同じです。私が期待するのは、非同期アプローチを使用する場合、スレッド プールのサイズがはるかに小さくなることです。

私は何か間違ったことをした?

ありがとう

4

1 に答える 1