MENU

nginx代理,tomcat8.5集群,redis的Session共享实现方法

2017 年 06 月 23 日 • 杂乱文章

emmmmm,最近在做一件事情,就是tomcat8.5的session共享,因为之前一直在用tomcat7,使用的jar包也是我之前自己编译的,在tomcat7上用着没任何问题,现在用的8.5,然后按着网上的方法再次编译jar包,但就是各种抛错,就是不成功,最后没办法,只能用jvm-route暂时解决这个问题了,但是jvm-route不是真正意义上的解决了session共享,他只是session的复制粘贴,如果有一个服务器宕了session就失效了,无法会话转移,这不是我想要的。

然后我就向单位的某个开发同事求救,我说我想做tomcat8.5的session共享,session要存到redis里面,几分钟后,同事给我发了一个压缩包,我接收后打开看了一下有很多jar包和一个文本,然后过来叫我吧那些包放到lib目录下,改一下配置文件就可以了,配置完以后重启了一下,正常启动,完美解决了这个问题,下面拿出来分享一下吧。需要使用jvm-route的参考这篇文章,tomcat6.0.0以上就可以用。

我现在的情况是只有N个tomcat组成集群,8.5.15版本,会用到redis,所以刚就装了一个redis,直接从配置开始吧,安装就不写了,之前都写过了。

方法一

1.下载jar包

点我下载撒

下载完成上传到要做集群的服务器$TOMCAT/lib目录下。

2.修改context.xml

加入以下内容,地址端口按自己的实际情况修改,要做集群的全部添加。

<Manager className="com.lemeng.tomcat.redisson.SingleServerSessionManager"
        endpoint="127.0.0.1:6379"
        sessionKeyPrefix="_rsm_"
        saveOnChange="false"
        forceSaveAfterRequest="false"
        dirtyOnMutation="false"
        ignorePattern=".*\\.(ico|png|gif|jpg|jpeg|swf|css|js)$"
        connectionPoolSize="100"
        database="1"
        timeout="60000"
        pingTimeout="1000"
        retryAttempts="20"
        retryInterval="1000"
    />

201706231498217242148274.png

配置完成后,重启tomcat即可。现在这样服务器崩只要不全崩就不会影响session。最后看一下redis。

20170623194030.png

方法二

其实不推荐使用上面的那种方法,主要是jar包太多了,其实三个就能解决问题,下面的包也不是我自己编译的,好像有点不好搞,在某些地方逛意外发现的,没抱希望,结果还真能用,如下。

1.下载jar包

点我下载撒

老样子,还是放到要做集群的服务器$TOMCAT/lib目录下,如果按第一种方式做了,先把之前的jar包全部删掉,因为有冲突。

2.修改context.xml

加入一下内容

   <Valve className="com.naritech.nicole.gump.RedisSessionHandlerValve" />
   <Manager className="com.naritech.nicole.gump.RedisSessionManager"
     host="127.0.0.1"
     port="6379"
     database="0"
     maxInactiveInterval="60"
     />

加完以后重启tomcat即可,效果和第一种一样。就是jar包相对的少了很多。就这样吧。我就不写测试方法了,这个只是适合tomcat8.5,8.0的没试过,7的就更不用说了,需要7的参考一下这篇文章

软链接

顺便提一下,因为现在做集群了,涉及到了一些文件共享,使用NFS挂载到指定目录后,然后通过软链接连接到项目里,但是tomcat默认是不支持访问软连接的,需要改点东西,$TOMAT_HOME/conf/context.xml文件,添加如下内容,重启即可。

tomcat8

<Resources allowLinking="true" />

tomcat7

<Context allowLinking="true" />

最后编辑于: 2018 年 12 月 18 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码