代码层:
1、web.xml 增加
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
2、porm.xml 增加
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.2.2.RELEASE</version>
</dependency>
tomcat:
3、tomcat目录下的 lib 文件夹增加 redisson-all-3.2.0.jar 和 redisson-tomcat-7-3.2.0.jar
(
redis客户端的wiki https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 https://github.com/redisson/redisson/wiki/14.-%E7%AC%AC%E4%B8%89%E6%96%B9%E6%A1%86%E6%9E%B6%E6%95%B4%E5%90%88#144-tomcat%E4%BC%9A%E8%AF%9D%E7%AE%A1%E7%90%86%E5%99%A8tomcat-session-manager)
4、conf 文件夹下的 context.xml 增加
<Manager className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/conf/redis.yaml" />
5、bin 文件夹下的 setenv.sh 增加
arr=${JAVA_OPTS}
for key in ${arr}
do
x="$(echo ${key} | awk -F '=' '{ print $1 "=" $2}')"
for i in ${x};
do
if [[ ${i} == *"Ddisconf"* ]] ;then
if [[ ${i} == *"Ddisconf.conf_server"* ]] ;then
disconf_server=`echo $i | awk -F '=' '{print $2}'`
fi
if [[ ${i} == *"Ddisconf.app"* ]] ;then
disconf_app=`echo $i | awk -F '=' '{print $2}'`
fi
if [[ ${i} == *"Ddisconf.version"* ]] ;then
disconf_version=`echo $i | awk -F '=' '{print $2}'`
fi
if [[ ${i} == *"Ddisconf.env"* ]] ;then
disconf_env=`echo $i | awk -F '=' '{print $2}'`
fi
fi
done
done
echo "准备下载redis.yaml。。。"
redisConfig="/usr/local/tomcat8080/conf/redis.yaml"
echo $redisConfig
wget -q "http://disconf.frontpay.cn/api/config/file?version=${disconf_version}&app=${disconf_app}&env=${disconf_env}&key=redis.yaml" -O "${redisConfig}"
if [ -f "$redisConfig" -a -s "$redisConfig" ]; then
echo "下载redis.yaml完成"
else
echo "${redisConfig} 文件不存在"
rm -rf "$redisConfig"
fi
redis.yaml 配置
---
clusterServersConfig:
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
reconnectionTimeout: 3000
failedAttempts: 3
password: null
subscriptionsPerConnection: 5
clientName: null
slaveSubscriptionConnectionMinimumIdleSize: 1
slaveSubscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 10
slaveConnectionPoolSize: 64
masterConnectionMinimumIdleSize: 10
masterConnectionPoolSize: 64
readMode: "SLAVE"
nodeAddresses:
- "redis://10.1.20.159:7000"
- "redis://10.1.20.159:7001"
- "redis://10.1.20.159:7002"
- "redis://10.1.21.2:7001"
- "redis://10.1.21.2:7002"
scanInterval: 1000
threads: 0
nettyThreads: 0
useLinuxNativeEpoll: false