高負荷環境でのタイムアウトで外部Webサービスの結果を呼び出す:WCFサービスは、私は、次のscnearioを持っている
私たちの.NETクライアントは、私たちのWCFサービスを呼び出します - 順番にいくつかのデータを取得するために、外部のサードパーティのサービスを呼び出します。データが取得されると、WCFサービスはいくつかの値を設定し、コントロールをクライアントに返します。外部サービスを呼び出すプロセスは同期している必要があります。
私の問題は、このすべてが低負荷環境で動作しますが、負荷が高くなると複数の要求がキューに入れられるため、WCFサービスがタイムアウトになります。バインディングの "sendTimeout"プロパティを5秒に設定した後、タイムアウトします。
私は外部サービスをモックアウトされたローカルバージョンに置き換えようとしましたが、それは負荷を処理しますが、同じ手でそれ自身の外部サービスへの呼び出しは非常に迅速です - 約0.5秒。あまりにも多くのリクエストがキューに入れられ、WCFサービスが割り当てられた5秒以内に応答できなかったため、タイムアウトが発生していると推定できます。
私は次のことを試してみました:
maxConcurrentCallsの値を設定し- 、maxConcurrentSessions & maxConcurrentInstancesを非常に高い数字
- がsystem.netの値を設定する - connectionManagement - 非常に高い数 にMAXCONNECTIONを
私たちはこのscnearioで何ができるのかについてのアイデアはありますか?
外部サービスに重い負荷がかかる可能性がありますか?外部サービスを同じ負荷レベルで直接呼び出してみましたか? –
私はそれを試してみようとしていました。私が月曜日に就任すると、次はそれをします。 – Ambuj