Tomcat 8.0 サーバーが nio モードで使用されます。その他はデフォルト設定です。
Spring mvc の残りの部分を使用してインターフェイスを作成し、httpclient によって実装された接続プールを通じて、resttemplate を使用してインターフェイスを呼び出します。 1,000 件のリクエストが同時に行われた場合、一部のリクエストがタイムアウトしたことが判明しました。アクセス障害の原因となります。 <しかし、一部のリクエストがタイムアウトになったため、アプリケーションはハングアップしませんでした>。
システム全体のアーキテクチャは次のとおりです。
アプリケーション A、B、C の 3 つがあります。
C はデータベースの操作、インターフェイスの提供、JSON の返しを担当します。
B はビジネスの処理と提供を担当します。インターフェイス、JSON の返し、C のインターフェイスの呼び出し、データの保存/読み取り
A はフロント デスクを担当し、B のインターフェイスを呼び出します。
A が B を呼び出すと、複雑なバランシングが nginx を通じて行われ、B サーバーが 2 つあります。
すみません、タイムアウトが発生する可能性のある状況は何ですか?
B は C を呼び出して、データベース側であるかどうかを確認します。
まず問題がどのステップにあるのかを特定し、それを詳細に分析します。各インターフェース呼び出しの消費時間を印刷できます