# tomcat-redis-session-manager
> 使用redis配置tomcat共享session
### 结构图:
<img src="http://images.cnitblog.com/blog/536814/201501/301356402377480.png"/>
### 分析:
分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,
比如 tomcat cluster session 广播、nginx IP hash策略、nginx sticky module等方案,
本文主要介绍了使用 redis 服务器进行 session 统一存储管理的共享方案。
### 必要环境:
* java1.7
* tomcat7
* redis2.8
## nginx 负载均衡配置
1. 修改nginx conf配置文件加入
upstream tomcat {
server 200.10.10.67:8110;
server 200.10.10.67:8120;
server 200.10.10.44:8110;
server 200.10.10.66:8110;
}
2. 配置 相应的server或者 location地址到 http://tomcat
## tomcat session共享配置步骤
1. 添加redis session集群依赖的jar包到 TOMCAT_BASE/lib 目录下
* <a href="https://github.com/izerui/tomcat-redis-session-manager/blob/master/jar/tomcat-redis-session-manager-2.0.0.jar?raw=true" target="_blank">tomcat-redis-session-manager-2.0.0.jar</a>
* <a href="https://github.com/izerui/tomcat-redis-session-manager/blob/master/jar/jedis-2.5.2.jar?raw=true" target="_blank">jedis-2.5.2.jar</a>
* <a href="https://github.com/izerui/tomcat-redis-session-manager/blob/master/jar/commons-pool2-2.2.jar?raw=true" target="_blank">commons-pool2-2.2.jar</a>
2. 修改 TOMCAT_BASE/conf 目录下的 context.xml 文件
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60"
sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.."
sentinelMaster="SentinelMasterName"
sentinels="sentinel-host-1:port,sentinel-host-2:port,.."/>
属性解释:
* **host** redis服务器地址
* **port** redis服务器的端口号
* **database** 要使用的redis数据库索引
* **maxInactiveInterval** session最大空闲超时时间,如果不填则使用tomcat的超时时长,一般tomcat默认为1800 即半个小时
* **sessionPersistPolicies** session保存策略,除了默认的策略还可以选择的策略有:
[SAVE_ON_CHANGE]:每次 session.setAttribute() 、 session.removeAttribute() 触发都会保存.
注意:此功能无法检测已经存在redis的特定属性的变化,
权衡:这种策略会略微降低会话的性能,任何改变都会保存到redis中.
[ALWAYS_SAVE_AFTER_REQUEST]: 每一个request请求后都强制保存,无论是否检测到变化.
注意:对于更改一个已经存储在redis中的会话属性,该选项特别有用.
权衡:如果不是所有的request请求都要求改变会话属性的话不推荐使用,因为会增加并发竞争的情况。
* **sentinelMaster** redis集群主节点名称(Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求)
* **sentinels** redis集群列表配置(类似zookeeper,通过多个Sentinel来提高系统的可用性)
* **connectionPoolMaxTotal**
* **connectionPoolMaxIdle** jedis最大能够保持idel状态的连接数
* **connectionPoolMinIdle** 与connectionPoolMaxIdle相反
* **maxWaitMillis** jedis池没有对象返回时,最大等待时间
* **minEvictableIdleTimeMillis**
* **softMinEvictableIdleTimeMillis**
* **numTestsPerEvictionRun**
* **testOnCreate**
* **testOnBorrow** jedis调用borrowObject方法时,是否进行有效检查
* **testOnReturn** jedis调用returnObject方法时,是否进行有效检查
* **testWhileIdle**
* **timeBetweenEvictionRunsMillis**
* **evictionPolicyClassName**
* **blockWhenExhausted**
* **jmxEnabled**
* **jmxNameBase**
* **jmxNamePrefix**
* ****
3. 重启tomcat,session存储即可生效
没有合适的资源?快使用搜索试试~ 我知道了~
使用redis配置tomcat共享会话.zip

共6个文件
jar:3个
txt:2个
md:1个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 79 浏览量
2024-12-04
11:02:30
上传
评论
收藏 396KB ZIP 举报
温馨提示
使用redis配置tomcat共享会话tomcat-redis-会话管理器使用redis配置tomcat共享会话结构图分析分布式web server集群部署后需要实现session共享,针对 tomcat 服务器的实现方案多种多样,比如 tomcat cluster session 广播、nginx IP hash策略、nginx sticky module等方案,本文主要介绍了使用 redis 服务器进行 session 统一存储管理的共享方案。必要环境Java1.7tomcat7redis2.8nginx 负载均衡配置修改nginxconf配置文件加入 upstream tomcat { server 200.10.10.67:8110; server 200.10.10.67:8120; server 200.10.10.44:8110; server 200.10.10.66:8110; }配置相应的服务器或者位置地址到http://tomcattomcat会话共享配置步骤添加red
资源推荐
资源详情
资源评论



























收起资源包目录








共 6 条
- 1
资源评论


徐浪老师
- 粉丝: 9536
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 背单词微信小程序.zip
- 测量与工程测量-测量工作概述.ppt
- 无线对讲覆盖系统.doc
- 微信小程序 - 王者图鉴.zip
- 很多微信小程序的源码.zip
- 地产项目材料(设备)初选会签表.doc
- 本科生网络课程讲义cn-chapt1.ppt
- 微信小程序 demo for 知晓云 Serverless SDK.zip
- 微信小程序 手势事件.zip
- 白灰窑工程的钢结构制作安装施工组织设计方案.doc
- ONE·一个_图文 微信小程序_开源代码(1).zip
- 微信小程序评分组件.zip
- 工程建设中“两个总包”的法律问题简析.doc
- 微信小程序富文本解析.zip
- 微信小程序开发框架、资源-干货汇总.zip
- 微信开发 Java SDK ,支持包括微信支付,开放平台,小程序,企业微信,视频号,公众号等的后端开发.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
