FragranceM 发表于 2018-11-5 09:20:35

编译tomcat-redis-session-manager-master部署到tomcat上

  因前几天有个项目,应用服务器使用tomcat,Nginx做的负载,但是其中有一台应用服务器挂掉或者是重启后sessionid丢失,或者是使用Nginx负载访问的时候,其中一台挂掉后,用户强制退出了,原因就是sessionid 丢失,这几天研究了下tomcat+redis, 这篇文章我就不写redis安装,网上很多,比较简单。
  下面是我前几天做的一个步骤,分享下。
  由于tomcat-redis-session-manager-master需要自己下载并编译,网上找了一些,感觉不是很靠谱,于是自己研究编译了下。
  tomcat-redis插件下载:https://github.com/jcoleman/tomcat-redis-session-manager
  gradle下载:https://gradle.org/
  (一). 配置gradle环境
  gradle 环境配置
  1. 配置JDK
  vim /etc/profile
  AVA_HOME=/mnt/jdk1.7.0_79
  PATH=$JAVA_HOME/bin:$PATH

  >  export JAVA_HOME
  export PATH

  export>  source /etc/profile
  2. 配置gradle环境变量
  unzip gradle-2.13-all.zip
  vim /etc/profile
  export PATH=/mnt/gradle-2.13/bin:$PATH
  source /etc/profile
  3. 测试
  # gradle
  :help
  Welcome to Gradle 2.13.
  To run a build, run gradle ...
  To see a list of availabletasks, run gradle tasks
  To see a list ofcommand-line options, run gradle --help
  To see more detail about atask, run gradle help --task
  BUILD SUCCESSFUL
  (二). 开始编译
  1.编辑vim build.gradle 需要修改代码,不然编译会报错。

  2. 开始编译

  3. 然后到/PATH/build/libs/查看是否有编译过的jar包

  4. 此时只需要将tomcat-redis-session-manager-2.0.0.jar以及另外两个依赖包:jedis- 2.5.2.jar,commons-pool2-2.2.jar一并拷入tomcat的lib目录下即可(依赖包可以在gradle的用户目录下找到)
  5. 所以我们只需要在所有的tomcat/conf/context.xml中加入配置即可
  

  6. 重启并部署应用到tomcat/webapps

  我关闭掉一台服务器后,立马切换到另一台并且session保持一致,并没有退出
  另一种测试方法:
  分别启动2个Tomcat,在浏览器中先进入a.jsp,再进入b.jsp,在b.jsp页面中显示Tomcat1中a.jsp加入session中的属性
  4AEFC3A3A0D271B49CB5BE1A4533F95C
  gloryxin
  启动redis自身的客户端
  ./redis-cli -h 127.0.0.1 -p6379

  执行 get4AEFC3A3A0D271B49CB5BE1A4533F95C
  发现a.jsp页面添加到session中的已经同步到redis中


页: [1]
查看完整版本: 编译tomcat-redis-session-manager-master部署到tomcat上