您的位置:首页 > 理论基础 > 计算机网络

用spring-session来管理http session

2015-12-11 16:58 573 查看
做负载均衡的时候,往往会遇到需要session同步的问题,方案很多,但是都有各种的缺点,最近发现spring-session项目,原理是将session保存到redis,来实现session同步,好处是不管增加多少个tomcat,都没有问题,做负载的时候,也不用考虑session问题,而且配置灰常简单,因为我们的项目就是用redis来缓存数据的,只需要添加两行配置即可

1、添加spring-session

<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>


2、在spring 配置文件里面配置一个bean

<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>


3、在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>
</filter-mapping>


以上,就实现了将session透明的写入到redis,代码都不需要改变,我们用的是spring-mvc,切换很顺畅,没有遇到什么大问题

需要注意的就是redis需要2.8以上版本,然后开启事件通知,在redis配置文件里面加上

notify-keyspace-events Ex
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息