在java web环境中一般都会有回话session存储登陆信息和用户信息,在负载均衡的时候都要处理这些回话信息,以前处理方式都会用同步套件的方式来处理,后来为了规避这个问题,直接session外置处理,就是直接在外置缓存或数据库中存储,在页面里面就不用tomcat的session,在业务上定义一个缓存对象作为session.但是基于既有的系统改造,或者是使用了一些登陆或权限认证的框架的系统之后再想做多借点负载均衡的话,就需要改造很多代码甚至架构。其实tomcat提供了session外置的方案,放入mc或redis.比如要放入redis:
tomcat7作为例子来说:
根据官方提供的文档
https://github.com/jcoleman/tomcat-redis-session-manager
有这么段话
Copy the following files into the TOMCAT_BASE/lib directory:
tomcat-redis-session-manager-VERSION.jar
jedis-2.5.2.jar
commons-pool2-2.2.jar
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost" <!-- optional: defaults to "localhost" -->
port="6379" <!-- optional: defaults to "6379" -->
database="0" <!-- optional: defaults to "0" -->
maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
sentinelMaster="SentinelMasterName" <!-- optional -->
sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />
tomcat7启动之后一定会报错的,后来改成jedis-2.2.jar和commons-pool-1.6.jar之后就不报错,注意上面那个xml文档中说可以放在server.xml,但是我试了是报错的,还是老实的加入到context.xml中。
还有这种方式,tomcat接入的redis只能配置一个节点,可以修改下源代码,实现多节点。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com