开心123 发表于 2016-12-20 07:10:55

tomcat的session存入redis配置

在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]
查看完整版本: tomcat的session存入redis配置