- 准备两台Tomcat7与一个Redis集群。
- 将jedis-2.9.0.jar、commons-pool2-2.4.2.jar、tomcat-redis-session-manager-2.1.0加入到两个Tomcat lib中。链接: https://pan.baidu.com/s/1dFvoUVB 密码: r333
- 系统有多个JDK环境,需要将两个Tomcat7指定为JDK7,修改bin文件夹下的setclasspath.sh与catalina.sh文件,分别export加入jdk目录与jre目录。
export JAVA_HOME=/usr/java/jdk1.7/bin/java
export JAVA_JRE=/usr/java/jdk1.7/bin/java
- 修改Tomcat中conf目录下context.xml,添加以下信息。redisNodes为redis集群所有的IP与端口。
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
redisNodes="192.168.100.1:8000,192.168.100.2:7000,192.168.100.2:7001,192.168.100.3:9001,192.168.100.1:8001,192.168.100.3:9000"
timeout="300000"
maxRedirections="6"
maxWaitMillis="-1"
maxTotal="1000"
minIdle="8"
maxIdle="100"
maxInactiveInterval="60"/>
##放入工程启动后分别访问两台Tomcat后,可用以下命令查看存入的JSESSIONID,确认存放没有问题(代码中存放到Session中类的需要支持序列化)。
redis-cli -c -p 7000
cluster nodes
key keys *
get key
##使用统一入口Nginx负载到两台Tomcat上,查看Session共享。也可在本地修改Hosts文件指向其中一台Tomcat,访问登录成功后,再修改Hosts指向另一台Tomcat,直接刷新页面,验证登录是否退出,JSESSIONID值是否一样。