私たちのサイトは最近、いくつかの小さなサイトに分割され、その後、異なる IDC に分散されます。
これらのサイトの 1 つはユーザー認証およびその他のユーザー関連サービスを提供し、他のサイトは Web サービスを介してアクセスします。
リモートでデータを取得するすべてのサイトで、ユーザー情報が必要になるたびにリモートに移動する必要がないように、ローカル キャッシュを作成します。
データの整合性を確保するために、どのキャッシュ更新戦略を推奨しますか?
私たちのサイトは最近、いくつかの小さなサイトに分割され、その後、異なる IDC に分散されます。
これらのサイトの 1 つはユーザー認証およびその他のユーザー関連サービスを提供し、他のサイトは Web サービスを介してアクセスします。
リモートでデータを取得するすべてのサイトで、ユーザー情報が必要になるたびにリモートに移動する必要がないように、ローカル キャッシュを作成します。
データの整合性を確保するために、どのキャッシュ更新戦略を推奨しますか?
リアルタイムに近い更新ポリシーが必要なため、キャッシュ無効化通知エンジンが必ず必要です。
それには 2 つの可能な実装モデルがあります。
1.Pull メイン サーバーは、次のような通知メッセージで子サーバーをプルします"resourceID=34392 not more valid in your cache"
。このメッセージは、メイン サーバーでデータが更新されるたびに送信する必要があります。
"If-object-was-updated"
リクエストに非常に迅速に応答する必要があります。両方のケースでわかるように、メイン サーバーはデータが変更されるたびにイベントをトリガーする必要があります。最初のケースでは、このイベントは「通知バス」を介して子サーバーに転送され、2 番目のケースでは、このイベントはrecently-updated-objects
リストに格納されます。したがって、どちらのオプションでも、メイン サーバーでコードを変更する必要があります。
私にとっては、2 番目のオプションは一般的に実装するのがはるかに簡単ですが、使用しているソフトウェア スタックに大きく依存します。