0

パフォーマンス指向のアプリケーションがクラスターで動作していると仮定します。多くのユーザーが含まれています。セッションのレプリケーションが不十分であるため、アプリケーションのスケーラビリティが低下する可能性があることがわかっています。もちろん、アプリケーションをステートレスとして作成するのが最善の方法です。(ノード間のシリアル化なし)しかし、私の質問は次のとおりです。HttpSessionをRedisやmemcachedなどのストレージに保持することにした場合はどうでしょうか。

HttpSessionをいくつかのnosqlインスタンスに保持するのは良い考えだと思いますか?

ありがとう

4

1 に答える 1

1

インメモリデータベースには、2つの大きな欠点があります。

  1. それらの容量はサーバーマシンのRAMに制限されています(スワッピングによってより多くのデータを格納できますが、それは目的をかなり損なうことになります)
  2. 何らかの理由でダウンすると、すべてのデータが失われます

したがって、問題は、セッションデータがどれほど重要かということです。新しいセッション用のスペースを確保するためにデータを削除する必要があるため、またはデータベースサーバーを再起動する必要があるために、ユーザーのsessonデータが失われた場合、それはどういう意味ですか?彼らはただログインし直す必要があるのでしょうか、それとも貴重なデータを失うのでしょうか?

memcachedと同じように機能するmemcacheDBもあることに注意してください(文字通り!ドロップインの代替として使用するように設計されています)が、ディスク上のすべてのデータをバックアップします。これは、データの損失が許容できない場合のMemcachedの優れた代替手段です。

于 2013-01-17T15:33:10.823 に答える