0

複数のマシンを持つ ARR クラスター (IIS) で実行されている単一の .NET Web アプリがあります。

各マシンは、ユーザー アクセス許可のキャッシュをメモリ内に保持する必要があります。つまり、ユーザーがリソースにアクセスするためのアクセス許可を持っているかどうかをアプリが判断する必要がある場合、アプリはメモリ キャッシュをクエリして、データベース アクセスを回避します (ユーザー リクエストごとに多くのクエリがあります)。

問題は、特定の状況では、このキャッシュを無効にする必要があることです。ただし、複数のマシンがあるため、キャッシュを無効にする必要があると判断した場合は、キャッシュを他のマシンに伝達する必要があります。

この問題を解決するためのベスト プラクティスは何ですか? IIS ARR クラスターで ASP.NET MVC 3 アプリを実行しています。

4

2 に答える 2

1

メッセージキューは通常のソリューションです。

すべてのノードによってサブスクライブされるキューを持つことができ、キャッシュを無効にする必要がある場合は、メッセージをキューに送信します。他のノードはこのメッセージを見て、キューを無効にします。

MSMQは Microsoft メッセージ キューですが、サード パーティ製のものも多数あります。代替手段としてnServiceBusを検討することをお勧めします。

于 2013-01-30T20:24:00.073 に答える
0

アクセス許可に関連するすべてのキャッシュを無効にするか、キャッシュの関連部分のみを無効にします (特定のユーザー、特定のロールなど?)

とにかく、私はhttp://redis.io/topics/pubsubなどの pub/sub パターンの線に沿って考えています - アプリがサブスクライブするサーバー (サブ) で、アプリは公開することでキャッシュの無効化を要求できますすべてのサブスクライバーへのリクエスト (pub)

于 2013-01-30T20:27:48.270 に答える