複雑な計算(基本的な算術演算ですが、たくさんあります)を備えたSpringブート1.5.x Webアプリケーションを開発しています。アプリにI/Oはありません。各要求には約100〜200msかかる。サーブレット3.1のパフォーマンスを持つCPUバインドされたWebアプリケーション
私たちはそのアプリケーションの負荷が比較的高いと予想しています。サーブレット3.1(リアクティブスプリング、vert.xなど)がスループットを向上させるかどうか疑問に思っていました。
サーブレット3.1はI/Oバウンドアプリケーションのスループットを改善するのには良いと言われていますが、CPUバインドされたアプリケーションのベンチマークは見つかりませんでした。
スループットが向上し、パフォーマンスが向上しません。要求処理スレッドは、別のスレッドに作業を渡します。つまり、ページを処理するような別の要求を処理できます。代わりに通常は何が起こるのかをブロックし、要求が完了するのを待ちます。そう、それはあなたのパフォーマンスを向上させませんスループットを向上させる可能性があります。サーブレット3.1を使用することは、あなたのパフォーマンス(一般的には)は改善されませんが、スケーラビリティが改善されるまったく異なるアーキテクチャのリアクティブなアプリケーションを構築することとは関係ありません。 –
ご回答いただきありがとうございます。回答としてお送りいただければ承諾いたします。私は用語を使いこなすかもしれませんが、実際にServlet 3.1が意味していたことは、この記事に書かれている「Servlet 3.1 non-blocking I/O」です。https://docs.spring.io/spring-framework/docs/5.0.0 .M1/spring-framework-reference/html/web-reactive.htmlを参照してください。 – user3395221