ロードバランシング側またはTomcat側で設定が欠落していると思われます。Tomcat6 WebクラスタリングのP2P Hazelcastセッション複製 - セッションの同期化に失敗する
私は何をしようとしていますか?このguide
- セットアップ2のTomcatインスタンスは、私がhazelcast-tomcatの-SessionManagerの-の.jarとhazelcast.xmlで、hazelcast-すべての.jarを配置しています
- 下に示すよう
- 以下のようにこれまでのところ、私が接続するTomcatのインスタンスを起動することができましたTomcatのフェイルオーバーとのjvmRouteパラメータを更新し、リスナーとコンテキストのconfigsを更新
- /libフォルダの$のCATALINA_HOME /お互いのハローキャスティングのインスタンス、私はtomcatのログに表示されます。
- ユーザはロードバランサに接続し、バランサのメンバーにルーティングされます。ここで問題はありません。
- しかし、Tomcatインスタンスをダウンしてフェールオーバーをテストし、tomインスタンスに接続していたユーザーが、同じセッションでcatのインスタンスをやり直す必要がなくなったことを確認するとき。しかし、私は、ロードバランサが新しいセッションを作成しているようだと思って、catインスタンスとのセッションを確立するために再度サインインするようにユーザーを強制します。私はこれを疑うが、確かではない。
- または、両方のハローキャストインスタンスでセッションが複製されずに同期されていませんか? - これが起こっています
- ヘビキャストセッションを監視できるクライアントがありますか? - 今、私は
は、私が代わりにJSESSIONIDのhazelcast.sessionIdを設定指しますがどのように約任意の詳細を提供していません。このissueを参照してくださいでした行います。
バージョン -
Apache Haus - 2.2.32 (for load balancing)
Hazelcast - 3.8.6
Java 8
Tomcat - 6.0.48
Session objects that need to be clustered are Serializable.
stickysession=JSESSIONID
ロードバランサの設定
<Proxy balancer://mycluster>
BalancerMember http://IPAddress1:8080/app/ route=tom
BalancerMember http://IPAddress2:8080/app/ route=cat
ProxySet lbmethod=byrequests stickysession=JSESSIONID|jsessionid
</Proxy>
ProxyPass /app/ balancer://mycluster/
ProxyPassReverse /app/ balancer://mycluster/
トム・インスタンス - のserver.xml
<Listener className="com.hazelcast.session.P2PLifecycleListener"/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tom">
トム・インスタンス - のcontext.xml
<Manager className="com.hazelcast.session.HazelcastSessionManager" sticky=true/>
猫のインスタンス - のserver.xml
<Listener className="com.hazelcast.session.P2PLifecycleListener"/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="cat">
猫のインスタンス - コンテキスト。XML
<Manager className="com.hazelcast.session.HazelcastSessionManager" sticky=true/>
アップデート:
私はthis pageを見て、ロードバランサとしてApache HTTPサーバを使用しての多くの経験を持っていませんが、私はsession sync failure
ありがとうございました。働いていた構成について私の答えを見てください。セッションの複製はすぐに機能します。 –