你的位置:首页 > 软件开发 > Java > Redis存储Tomcat集群的Session

Redis存储Tomcat集群的Session

发布时间:2016-06-15 15:00:09
Redis存储Tomcat集群的Session如何  做到把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机、对使用用户零影响。设想  是使用集群来搞定,通过通知负载均衡Nginx,取下集群中的Tomcat节点,然后对Tomcat上的应用进行升级,再通知负载均衡Nginx ...

                Redis存储Tomcat集群的Session

如何

  做到把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机、对使用用户零影响。

设想

  是使用集群来搞定,通过通知负载均衡Nginx,取下集群中的Tomcat节点,然后对Tomcat上的应用进行升级,再通知负载均衡Nginx,把Tomcat节点重新加载上去。依次这么做,把集群中的所有Tomcat都替换一次即可。

那么问题来了

  在取下Tomcat节点和加载新Tomcat节点时如何做到对用户无影响呢?方法很简单,共享Session。

下面

  我们用实例来说明此方案。我们的例子使用了一台Nginx做负载均衡,后端挂接了两台Tomcat,且每台Tomcat的Session会话 都保存到Redis数据库中。其中,Nginx配置为non-sticky运行模式,也即每一个请求都可以被分配到集群中的任何节点。当要上线新代码时, 只需简单地取下Tomcat实例,此时所有的访问用户会被路由到活动的Tomcat实例中去,而且由于会话数据都是保存在Redis数据库中,所以活跃用 户并不会受影响。当Tomcat更新完毕,又可以把此节点加入到Nginx中。

安装Nginx

  # sudo rpm -ivh nginx-1.4.2-1.el6.ngx.x86_64.rpm

修改配置文件/etc/nginx/nginx.conf,并添加下面的内容:

http {upstream tomcat {    server localhost:8080;    server localhost:8081;  }include   /etc/nginx/mime.types;default_type application/octet-stream;修改配置文件/etc/nginx/conf.d/default.conf并替换location部分的内容:location / {  proxy_pass http://tomcat; }

原标题:Redis存储Tomcat集群的Session

关键词:Redis

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录