设为首页 收藏本站
查看: 1664|回复: 0

[经验分享] tomcat apache session粘性配置和session复制配置

[复制链接]
发表于 2015-8-1 09:10:35 | 显示全部楼层 |阅读模式
  好早前配置了负载均衡和session复制,今天写出来备忘。
  方案:
1、基于request的负载均衡
    该种方式下,负载均衡器 (load balancer)会根据各个node的状况,把每个 http request进行分发。使用这样的均衡策略,就必须在多个node之间复制用户的session,实时保持整个cluster的用户状态同步,这种操作被称为session复制(session replication)。Jboss的实现原理是使用拦截器(interceptor),根据用户的同步策略拦截request,做同步处理后再交给server产生响应。
     优点是客户不会被绑定都具体的node,只要还有一个node存活,用户状态都不会丢失,cluster都能够继续工作。
  缺点是node之间通信频繁,响应速度有影响,多并发、高频操作的情况下性能下降比较厉害。
2、    基于用户的负载均衡
该种方式下,当用户发出第一个request后,负载均衡器动态的把该用户分配到某个节点,并记录该节点的jvm路由,以后该用户的所有request都会被绑定这个jvm路由,用户只会与该server发生交互,这种策略被称为粘性session(session sticky)。
     优点是响应速度快,多个节点之间无须通信。
  缺点也很明显,某个node死掉以后,它负责的所有用户都会丢失session。
  
  采取方案:
  目前采用第二种,也就是session stiky (1小时)
  文件服务器的配置   (1天)   
  Tomcat参数优化    (1天)
  集群的配置
  
  首先在apache 的conf目录下找到httpd.conf(apache 的配置文件)文件
  在该文件里找到
  LoadModule proxy_module modules/mod_proxy.so
  LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  LoadModule proxy_connect_module modules/mod_proxy_connect.so
  LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  LoadModule proxy_http_module modules/mod_proxy_http.so
  并且把上面的#号去掉
  然后找到
  Include conf/extra/httpd-vhosts.conf
  把上面的#号去掉
  在最后一行加上
  ProxyRequests Off
  
  
  
  BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=tomcat3(与该tomcat里德jvmRote名字一样)
  
  BalancerMember ajp://127.0.0.1:8020 loadfactor=1 route=tomcat2
  
  
  
  第二步找到\conf\extra包下面的httpd-vhosts.conf
  在下面加上
  
  ServerAdmin yancheng100088@163.com
  ServerName localhost
  ServerAlias   localhost
  ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
  ProxyPassReverse / balancer://cluster/
  ErrorLog "logs/dummy-host2.163.com-error.log"
  CustomLog "logs/dummy-host2.163.com-access.log" common
  
  
  
  第三步找到解压后的tomcat在不同的tomcat里修改server.xml里的端口参数使之不重复
  (大家都知道就不详细说了)
  这里改几个比较重要的参数
  一个是
  改成
  另一个后面改成tomcat3
  
  然后加上
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
                 
  这个是session复制用的不需要session复制的可以不用
  
  最后一步
  在需要session复制的程序里面的web.xml里加上
  
    
  
  
  
  Session粘性,一般用到粘性就不用sesssion复制了
  只需要在httpd.conf里最后一段加上
  ProxyRequests Off
  ProxyPass / balancer://cluster/ lbmethod=byrequests stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3  
  ProxyPassReverse / balancer://cluster/  
  
  
  BalancerMember ajp://127.0.0.1:8010 loadfactor=1 route=tomcat3
  
  BalancerMember ajp://127.0.0.1:8020 loadfactor=1 route=tomcat2
  
  
  就行了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92883-1-1.html 上篇帖子: Apache spark入门精品文章 下篇帖子: 为drupal安装 Php + Apache 的参考文章
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表