1

私は1つのWebサーバー環境から複数のWebサーバー環境に移行しました。過去にはnhibernateとsyscache 2次キャッシュを使用しています。nhibernate第2レベルのキャッシュとしてマルチサーバー環境でSyscacheを使用する際に問題がありますか?

私は分散nhibernateの第2レベルのキャッシュソリューション(memcache、velocityなど)に移行する必要があると知っていますが(その理由のために)、移行には少し時間がかかります。

特に私は現在の状態(複数のWebサーバー環境でSyscacheレベル2キャッシュを使用している)について心配する必要がありますか、それとも分散ソリューションと同じようにはなりませんか私は本質的に、各ウェブサーバ上にローカル並列キャッシュを、サーバ間に集中キャッシュを持つ)。

私は基本的に、これがこのセットアップの問題であるか、それができるだけ速くないかどうかを判断しようとしています。

答えて

1

ウェブファーム環境では、分散キャッシュを使用することをお勧めします。そうしないと、各Webサーバーには効率の悪い独自のキャッシュコピーが作成されます。 Syscacheは既定のASP.NETキャッシュプロバイダを使用するため、この既定のASP.NETキャッシュと同じ速度で動作します。デフォルトでは、各Webサーバーのメモリに格納されます。

したがって、デフォルトのASP.NETキャッシュを使用するSysCacheは、Webファーム環境では機能しますが、分散キャッシュを使用すると効率的ではありません。

+0

更新または1つのWebサーバーからDBへの挿入を行うとどうなりますか?他のWebサーバー上の第2レベルのキャッシュはどのように通知されますか? – leora

+0

@ooo、非分散キャッシュでは、他のサーバーは通知されません。分散キャッシュでは、対応する項目がどのサーバに格納されているかを計算するために特殊なハッシュ関数が使用されます。 –

+0

通知が届かない場合は、他のサーバーが古いデータを更新しようとする可能性がありますか? – leora

関連する問題