2012-05-04 2 views
-1

可能性の重複:TomcatやJBossはそのことについては、セッションデータを格納しない
Tomcat/jBOSS sessions - where are they usually stored?のTomcat/JBossのセッションストア

? そして、それらがメモリ内に格納されている場合、クラスター環境でのセッション管理はどのように行われますか?私はフェールオーバーがsessioncontextを失うことなくどのように処理されるのかを意味します。あなたの助けに感謝。

おかげで、 Hemant

+0

重複:http://stackoverflow.com/q/1922048/1140748 –

答えて

0

デフォルトTomcatでは、メモリ内のセッションデータを格納します。

クラスタリングを使用する場合は、DeltaManagerとBackupManagerという2つの方法があります。

DeltaManagerを使用すると、あるノードのセッションに対する変更が、クラスタ内の他のすべてのノードに複製されます。 1つのノードが消滅した場合、クライアントがフェイルオーバーしたノードでフル・セッションを使用できます。

BackupManagerを使用すると、少し複雑になります。各セッションでは、1つのノードがプライマリノード(クライアントがアクセス)であり、1つのノードがバックアップ(セッションの完全コピーが維持される)であり、他のすべてのノードはプロキシセッションです(プライマリとバックアップセッションにはデータが含まれていません)。ノードが消滅すると、クライアントはランダムに別のノードを選択します。バックアップノードを選択すると、そのノードがプライマリノードになり、新しいバックアップが選択され、すべてのプロキシが更新されます。プロキシノードを選択すると、そのノードがプライマリノードになり、バックアップからデータがコピーされ、すべてのプロキシが更新されます。これを行うには、スティッキセッションを使用する必要があります。

BackupManagerが60個のユーザーセッションをサポートしているクラスタ内の4つのノード(A、B、C & D)を考慮すると役立つことがよくあります。セッションはノードにラウンドロビン方式で配信されるため、次の状態で終了する必要があります。

ノードAには15のプライマリセッション、ノードBには5セッション、ノードCには5セッション、ノードCには5セッション、残りのセッションには、どのノードがプライマリでバックアップであるかを詳細に示す30のプロキシセッションがあります。

ノードBには15のプライマリセッション、ノードAには5セッション、ノードCには5セッション、ノードDには5バックアップがあります。残りのセッションには、どのノードがプライマリであるかを詳述する30のプロキシセッションもありますバックアップ。

ノードCには、15のプライマリセッション、5つのセッションがノードA、5つのバックアップがノードB、5つのバックアップがノードDになります。また、残りのセッションには30のプロキシセッションがあり、バックアップ。

ノードDには15のプライマリセッション、ノードAには5セッション、ノードBには5セッション、ノードCには5バックアップがあります。残りのセッションには、どのノードがプライマリであるかを詳述する30のプロキシセッションもありますバックアップ。

ノード間でデータを複製する方法とタイミングを制御するための設定オプションも多数あります。詳細については、Tomcatのドキュメントを参照してください。

+0

本当に助けてくれました、ありがとうございます。 – user1331192

+0

デフォルトでは、どちらのTomcatが使用しますか?デルタまたはバックアップ? – user1331192

+0

デフォルトでは、クラスタリングはデフォルトでは有効になっていないため、どちらもデフォルトでは使用されません。クラスタリングを有効にすると、デフォルトでDeltaManagerが使用されます。 –

関連する問題