サーバーはプロジェクトがまだ実行中であることを示していますが、呼び出しインターフェイスが応答しません

序文:

最近、プロジェクトの実行中にインターフェイスが応答しないという問題が突然何度も報告されました。サーバーを再起動すると、再び動作するようになります。長い間苦労した後、ようやく問題が見つかりました。トラブルシューティングの手順は次のとおりです。

トラブルシューティングの手順

1. Druid を使用してアプリケーションを監視する

Druid モニタリングでは、インターフェイスと SQL の呼び出し時間、応答時間、呼び出し時間間隔、

複数のインターフェイスにブロッキングの問題があり、スレッドがすでにいっぱいであることが判明したため、インターフェイス SQL の最適化を開始しましたが、プログラム ブロッキングの問題を防ぐことができないことがわかりました。

時刻検出の開始時に、実行中のインターフェイスの数が増加し始め、減少しないことがわかります。

コードを隅々まで確認した結果、以前の同僚が書いたコードでは外部リクエストにアクセスする際にタイムアウト時間が設定されておらず、スレッドが占有されてブロックされてしまうことが判明したので、このインターフェースを改良してタイムアウトを設定しました。例外が発生した場合はログやその他の情報に応答します。

長時間でも問題ない

おすすめ

転載: blog.csdn.net/GuaGea/article/details/127810388