0

sticky_sessions=false の負荷分散で 2 つの Tomcat が動作しています。したがって、Tomcat 全体で「セッションの永続性」が必要です。Tomcat のドキュメントには、次の 3 つの方法があると書かれています。

  1. Tomcat クラスタリング
  2. 持続性マネージャー + 共有ディレクトリ
  3. 持続性マネージャー + SQL ストレージ

クラスタリングは私には合いません。ドキュメントには、設定するには sticky_sessions を true にする必要があると書かれているためです。

Persistance Manager を試してみましたが、タイムアウト後にのみセッションを持続するため、動作しないように見えます。sticky_session=false では動作しません。

Persistance Manager はセッションをすぐに永続化できますか?

memcached-session-manager について読みましたが、サードパーティのソリューションのように見えるので、使用するのが怖いです。それが唯一の解決策ですか?

4

1 に答える 1

0

セッションの永続性は必要ありません。クラスタリングでもできます。スティッキー セッションは、多くの潜在的な競合状態 (またはパフォーマンスの問題) を修正するため、一般的には良い考えです。

スティッキー セッションなしでクラスタリングを有効にできます。ただし、スティック セッションを無効にするやむを得ない理由がない限り、クラスタリングでスティック セッションを使用することをお勧めします。(スティッキー セッションが有効な場合でもフェールオーバーが発生することに注意してください。)

の問題はPersistentManager、セッションがタイムリーにストアで更新されることを保証できないことです。maxIdleBackupの構成属性を見てくださいPersistentManager。永続性を調整する方法の手がかりが得られる場合があります。

PersistentManager別の問題を解決するために実際に存在します。限られたメモリで膨大な数の長期セッションを処理することです。Amazon.com のようなものを使用することを考えてみてください。彼らはあなたの「ショッピング カート」にあるものを何週間も何週間も記憶しています。DBまたはファイルに永続化されたセッションに保存されている「カート」を使用して、怠惰な方法でこれを行うことができます。

複数のサーバー間でセッションを共有したい場合は、クラスタリングが最適なオプションです。Tomcat の Web サイトには、クラスタリングに関する優れたプレゼンテーションがいくつかあります。

于 2016-04-21T17:27:37.313 に答える