1

(簡単にするために) 複数のクライアントが接続する 1 つの WCF サービスで構成されるシステムを継承しました。サービスは (他の作業の中でも) データ キャッシュを維持し、可能であればサービスへの呼び出しを保存するために、クライアントもデータのローカル キャッシュを維持します。クライアントは、タイマーで送信される Tibco RV メッセージを介して、WCF サービスからの最新データで更新されます。各クライアントはこのメッセージをリッスンし、サービスを呼び出して、ローカルにキャッシュする最新のデータを取得します。

単一の WCF インスタンスがある場合、これはすべてうまく機能しているように見えます。負荷分散された環境で複数のインスタンスを実行できるようにしたいのですが、クライアントが各サービス インスタンスからキャッシュを更新するように伝える大量のメッセージを受信するのは望ましくありません。

メッセージを統合できるブローカー仲介について簡単に考えましたが、サービスがいつ開始されたかによってこれらのメッセージがまったく異なる時間に来る可能性があるため、基本的に失敗します。

私の理想的な世界では、MongoDB サーバー クラスターか何かが必要だと思います。クライアントはそこからデータを取得するだけで、WCF キャッシュの側面が取り除かれます。このサービスは必要に応じて Mongo ストアをリロードできますが、それでもネットワークの使用が発生します。この余分なネットワーク使用量が発生すると、このクライアント キャッシュ設計の当初の設計目標が混乱するようです。

この設定でサービス インスタンスをスケールアウトし、単一障害点なしで影響の少ない方法を考えられる人はいますか?

4

0 に答える 0