我相信我在负载平衡方面或在tomcat中缺少一些配置,如果有人可以提供帮助并提供解决方案,那就太棒了。
我想做什么?
我确实引用了这个issue,它指的是设置hazelcast.sessionId而不是JSESSIONID,但没有提供有关如何的任何细节。
版本 -
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/
tom instance - server.xml
<Listener className="com.hazelcast.session.P2PLifecycleListener"/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tom">
tom instance - context.xml
<Manager className="com.hazelcast.session.HazelcastSessionManager" sticky=true/>
cat instance - server.xml
<Listener className="com.hazelcast.session.P2PLifecycleListener"/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="cat">
cat instance - context.xml
<Manager className="com.hazelcast.session.HazelcastSessionManager" sticky=true/>
更新
我认为以下问题与session sync failure
相同答案 0 :(得分:1)
虽然我没有太多使用Apache HTTP服务器作为负载均衡器的经验,但查看this page,我认为您需要按如下方式更新负载均衡器配置:
<Proxy balancer://mycluster>
BalancerMember http://IPAddress1:8080/app/ route=tom
BalancerMember http://IPAddress2:8080/app/ route=cat
ProxySet lbmethod=byrequests stickysession=hazelcast.sessionId
</Proxy>
ProxyPass /app/ balancer://mycluster/
ProxyPassReverse /app/ balancer://mycluster/
我们是否有客户可以监控淡褐色会话?
您可以使用Hazelcast Management Center监控群集并浏览存储在Hazelcast IMap中的会话条目。所有会话都存储在由其ID标识的Hazelcast IMap中。请注意,您需要在群集成员上启用管理中心,然后才能在管理中心上查看任何数据。
您还可以查看Docker code samples for container based session replication以查看会话复制的有效配置。虽然没有使用Apache作为负载均衡器,但one that uses Nginx可能对您有所帮助。
答案 1 :(得分:0)
我使用以下配置。认为它需要jsessionid和hazelcast.sessionid,会话复制现在很有效。
<Proxy balancer://mycluster>
BalancerMember http://IPAddress1:8080/app/ route=tom
BalancerMember http://IPAddress2:8080/app/ route=cat
ProxySet lbmethod=byrequests stickysession=JSESSIONID|jsessionid|hazelcast.sessionId
</Proxy>
ProxyPass /app/ balancer://mycluster/
ProxyPassReverse /app/ balancer://mycluster/