我使用redisson在运行tomcat v8.5的3个tomcat pod上复制我的spring应用程序的tomcat会话。我也在同一个Kubernetes集群中部署了Redis。这是我的tomcat context.xml config
<Manager className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/conf/redisson.yaml" readMode="REDIS" updateMode="DEFAULT" />
我的配置如下:
masterSlaveServersConfig:
password: 'password'
readMode: "MASTER_SLAVE"
subscriptionMode: "SLAVE"
slaveAddresses:
- "redis://redis-replicas:6379"
masterAddress: "redis://redis-master:6379"
当我在所有pod上运行应用程序和负载平衡请求时,它会为发送到不同pod的每个请求创建一个新的JSESSIONID cookie
这将在pod2上验证在pod1上创建的JSESSIONID,而无需创建新的JSESSIONID谁能告诉我什么配置可以确保JSESSIONID在所有pod中保持相同的单个会话?
您需要为RedissonSessionManager设置broadcastSessionEvents = true
设置。