質問

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

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

しかし、これはセッションデータを保存する最良の方法です(モノで実行する場合はより良い)?

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

よろしく、 シルマック

役に立ちましたか?

解決

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

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

使用するお金がある場合は、スケールアウトサーバーがオプションになる可能性があります。ただし、実際に大規模なWebサイトでは、スケールアウトテクノロジーをときどきリサイクルする必要があると言われています。

Microsoftの曲がり角には、memcachedと同等の.NETであるVelocityがあります。これはまだリリースされておらず、成熟した技術ではありません。

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

他のヒント

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

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

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

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

もう少し情報を提供する必要があると思います。私はモノで物事を実行することに精通していません(したがって、asp.net状態サービスをお勧めします)が、memcachedのようなサードパーティのキャッシングプロセスが良いと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top