私の知る限り、Tomcat クラスタリングは非スティッキー セッションをサポートしていません。tomcat ドキュメントから:
ロードバランサーがスティッキー セッション モード用に構成されていることを確認してください。
しかし、非スティッキー セッションもサポートするmemcached-session-manager (msm)と呼ばれるソリューション (私が作成したので、私が偏っていることがわかります :-))があります。msm は、セッションのバックアップ/ストレージのバックエンドとしてmemcached (または memcached プロトコルを使用するバックエンド) を使用します。
非スティッキー モードでは、セッションは memcached にのみ保存され、Tomcat には保存されなくなります。非スティッキー セッションと同様に、セッション ストアは外部にある必要があります (古いデータを避けるため)。
また、セッションのロックもサポートしています。スティッキーでないセッションでは、複数の並列リクエストが異なる tomcat にヒットし、セッションを並行して変更する可能性があるため、セッションの変更の一部が他の変更によって上書きされる可能性があります。セッションのロックにより、異なる tomcat に送信される並列リクエストの同期が可能になります。
msmのホームページでは、主にスティッキー セッション アプローチについて説明しています (これだけで始まったため)。非スティッキー セッションの詳細については、検索するか、メーリング リストで質問してください。
構成に関する詳細と例は、msm wiki (SetupAndConfiguration)にあります。
複雑さに関するアイデアを提供するために: 必要なのは、実行中の 1 つ以上のmemcachedサーバー (または同様に言えば memcached) と、次のような更新された tomcat context.xml です。
<Context>
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:host1.domain.com:11211,n2:host2.domain.com:11211"
sticky="false"
sessionBackupAsync="false"
lockingMode="auto"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
</Context>
ロードバランサーには特別な構成は必要ないため、これらの設定が整ったら、アプリケーションのテストを開始できます。