1

.net セッション データ (トラフィックの多い Web サイト用) をキャッシュまたは保存するための無料で高可用性の高パフォーマンス ソリューションを調査しています。db は使いたくない (db はトラフィック増加のボトルネック)。

キーと値のストアがいくつかありますが、私の知る限り、それらは .net オブジェクトをサポートしていません。また、高可用性をサポートする分散またはレプリケートされたキャッシング ソリューションがいくつかあります。

しかし、セッションデータを保存する最良の方法はどれですか (モノラルで実行する場合に適しています)?

編集:高可用性のために、ユーザー セッション データを複数のマシンに複製する必要があります。最適な方法を実現するために必要な場合は、シリアライザーを作成できます。ユーザー セッションには、e コマース サイトに必要な標準オブジェクトが含まれています。

よろしく、シルマック

4

3 に答える 3

3

Windows サービスとして実行されるセッション状態サーバーを使用できますが、Web ファームのシナリオでそれを機能させるには、Web サーバーの 1 つにセッション状態サービスを実行させ、他の Web サーバーを調整する必要があります。その単一の Web サーバー。これはもちろん、サービスを実行している Web サーバーがダウンした場合に問題になります。

もう 1 つのオプションは、分散メモリ セッション状態サーバーである memcachd を使用することです。これは無料で、このフレームワーク用の .NET のプロバイダーが既に存在します。それはかなり成熟しており、しばらくの間存在しています。

使うお金がある場合は、スケール アウト サーバーが選択肢になる可能性があります。しかし、非常に大規模な Web サイトでは、スケールアウト テクノロジを時々再利用する必要があると聞いています。

Microsoft の曲がり角をくぐると、memcached に相当する .NET である Velocity が登場します。これはまだリリースされておらず、成熟したテクノロジーではありません。

技術的および財務上の要件に合ったソリューションを選択する必要があります。

于 2009-09-11T03:39:34.383 に答える
2

自由に話している場合、MySQL大量のトラフィックを処理できます(明らかに適切なハードウェア上で)。

于 2009-09-11T03:37:06.820 に答える
0

まず、セッションに何を保存するかを決定する必要があります。まったくシリアライズできないものもあります。ただし、関連するオブジェクトに対して独自のシリアル化ルーチンを実装し、作成した方法でそれらを保存することはできます。たとえば、内部で BinarySerialisation を行い、オブジェクトを base64 でエンコードされた文字列としてキャッシュ ツール (memcached など) に書き込み、それを取得することができます。

また、ここではどのようなスケーラビリティを目指していますか? リクエストごとにサーバー間でユーザーを交換していますか? その場合、少なくとも中央の、または少なくともミラーリングのキャッシュ システムが必要になります。

ユーザーを同じサーバーに保持するが、多くのユーザーがいる可能性がある場合は、実際には問題ではありません。同じマシンで外部プロセスを使用してキャッシュできます。

もう少し情報を提供する必要があると思います。私は mono で実行することに慣れていません (そのため、asp.net 状態サービスをお勧めします) が、memcached などのサード パーティのキャッシュ プロセスが適していると思います。

于 2009-09-11T03:34:09.843 に答える