web-dev-qa-db-ja.com

本番環境でのTomcatクラスタリング/ロードバランシングのパフォーマンス

負荷分散環境でのクラスタリングとセッション管理のパフォーマンスに疑問があります。これが私の質問です:

  • スティッキーセッションとセッションレプリケーションの欠点は何ですか。クラスターには4つのノードが含まれますが、多くの同時ユーザーセッションが予想される場合があります。
  • 両方のソリューションの高負荷パフォーマンスはどれくらいですか?
  • 誰かが本番環境でそれらのいずれかを使用しましたか?
  • スケーラビリティはどうですか?
  • 永続的な共有セッションを使用している場合-おそらく高速で安定したソリューションを実現するために、状態をどこに保存しますか?
  • 大規模なセッション共有(外部memcache、データベースなど)の経験はありますか?

アドバイスをありがとう

2
user76591
  • スティッキーセッションの欠点は、ノードの数が増えると(> 100、> 1000の範囲)、失敗する可能性が高くなることです。その場合、どのノードがリクエストを処理するかは問題ではないことが望ましいです。ただし、スティッキーセッションでは別の方法で解決する必要のある問題があります。これはもちろん、要件とアプリケーションによって異なります(たとえば、セッションの同期、二重送信の防止、ポスト後のリダイレクトなど)。ほとんどの場合、ノードの数が限られている限り、スティッキーセッションを使用することを好みます。個人的には4ノードの場合、スティッキーセッションを使用することをお勧めします。
  • 本番環境では、 memcached-session-manager を介してスティッキーセッションとセッションレプリケーションを使用しました。 memcached-session-managerは、パフォーマンスとスケーラビリティの両方を目的として、tchibo.de(ドイツで最大のeコマースサイトの1つ)の再起動時に開発されました。
  • このアプリケーションにはスティッキーセッションを選択しました
    • パフォーマンスが向上したため
    • スティッキーセッションを選択した顧客の要件
    • 使用されたWebフレームワークは、スティッキーセッションに適していました。
1
Martin Grotzke

これでもあれでもありません。アプリケーションで両方が必要な場合は、両方を使用する必要があります。クラスタリングとは、ノードで障害が発生した場合にセッションアフィニティを使用してユーザーのデータを保護しながら、負荷を管理することです。

この例を引用すると、ノードを操作していて、スティッキーセッションがなく、ノードがクラッシュした場合、クラスタリングによってページが表示されるようになりますが、現在の作業セッションは失われます。

0
Abhi