基于redis实现tomcat的session会话保持 (转) | 您所在的位置:网站首页 › tomcat会话保持 › 基于redis实现tomcat的session会话保持 (转) |
出处:https://cloud.tencent.com/developer/article/1402997 基于redis实现tomcat的session会话保持在实际生产中,我们经常部署应用服务,在部署的过程中,要让用户无感知你的应用升级,这种方式可以通过负载均衡方式来实现灰度部署,如前些文章的Nginx方式来实现,通过负载均衡Nginx,更新某一台tomcat服务,再通知负载均衡Nginx,把Tomcat节点重新加载上去。依次这么做,把集群中的所有Tomcat都替换一次即可,就可以实现服务的灰度部署。 如何让用户无感知?就是要实现用户的会话是可以共享的,基于session共享的方式有如下几种: 1,使用数据库来存储session 2,使用cookie来存储session 3,使用redis来存储session 4,使用tomcat的session复制 5,使用mamcached来存储session 我们这里主讲解redis的方式来实现Tomcat的session共享。 我们的例子使用了一台Nginx做负载均衡,后端挂接了两台Tomcat,且每台Tomcat的Session会话都保存到Redis数据库中。其中,Nginx配置为non-sticky运行模式,也即每一个请求都可以被分配到集群中的任何节点。当要上线新代码时,只需简单地取下Tomcat实例,此时所有的访问用户会被路由到活动的Tomcat实例中去,而且由于会话数据都是保存在redis数据库中,所以活跃用户并不会受影响。当Tomcat更新完毕,又可以把此节点加入到Nginx中。 架构图如下: ![]() 主机规划 主机名 IP地址 服务 lb01-5 10.0.0.5,172.16.1.5 nginx-1.14 web01-7 172.16.1.7 Tomcat-9.0 web02-8 172.16.1.8 Tomcat-9.0 db01-51 172.16.1.51 Redis-3.2 在两台web上安装tomcat //安装java环境 [root@web01-7 local]# yum -y install java //下载tomcat安装包 [root@web01-7 local]# wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz [root@web01-7 local]# tar xf apache-tomcat-9.0.12.tar.gz [root@web02-8 local]# mv apache-tomcat-9.0.12 tomcat [root@web01-7 local]# echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/profile [root@web01-7 local]# source /etc/profile [root@web01-7 local]# sed -i '/Host name=/c |
CopyRight 2018-2019 实验室设备网 版权所有 |