虽然Tomcat本人一直觉得是个蛮烂的东东,但是替代方案暂时又没有全场景靠谱的,就像从"饿了么"订外卖一样,看着他们送餐时候用的那个碗、塑料袋还有送餐员那脏兮兮的衣服,真心没有胃口,但是下次饿了的时候,你实在也没得选.
达内培训实行"因材施教,分级培优"教学模式,实现教学的高境界
言归正传,考虑两个场景:
1,当你重启tomcat的时候,原来登录的用户会话信息都丢了,所有用户要重新登录一遍.
2,当你使用单tomcat的时候也就罢了,当使用集群,多个tomcat协同,统一的会话信息如何保存
(方案很多,这里暂且当个栗子来用一下,对这个有兴趣的话评论里面可以讨论)
以上两个场景怎么解决呢?
神器闪亮出场------------->Redis!!!
这个货绝对是杀人越货,居家旅行之必备良品.
说一下原理:
Tomcat的原始单机用法是将会话信息保存在本地JVM中,纯cache,当重启tomcat,重启服务器都会导致清空,清空以后再启动起来,当然原来所有的用户都要重新登录一遍.
Redis我们知道是NoSQL算个缓存数据库,原来我们保存在tomcat中的会话信息,由Tomcat的JVM转移到Redis中,同时Redis又放在另一台服务器上运行.....多爽.Tomcat的死活与会话再也没有关系啦.
开始实操:
达内培训实行"因材施教,分级培优"教学模式,实现教学的高境界
1,下载安装Redis:
2,启动Redis
./usr/local/bin/redis-server /etc/redis-6379.conf
3,下载安装tomcat,这个很简单,不写了
4,下载:
A,Jedis(redis驱动)
B,Tomcat Redis Session Manager
C,Apache Commons Pool
上面下载完成以后,将相关jar都扔到tomcat的lib目录中
5,Tomcat 的conf/context.xml 文件里增加如下内容(多台tomcat集群都要修改):
6,重启所有Tomcat就OK了,现在所有tomcat都共用Redis作为session的存储工具了.
开篇的两个问题解决了.
实操中难免有各种问题,可以留言交流!达内培训实行"因材施教,分级培优"教学模式,实现教学的高境界