tomcat apache session粘性配置和session複製配置

好早前配置了負載均衡和session複製,今天寫出來備忘。 方案: 一、基於request的負載均衡 該種方式下,負載均衡器 (load balancer)會根據各個node的情況,把每一個 http request進行分發。使用這樣的均衡策略,就必須在多個node之間複製用戶的session,實時保持整個cluster的用戶狀態同步,這種操做被稱爲session複製(session replication)。Jboss的實現原理是使用攔截器(interceptor),根據用戶的同步策略攔截request,作同步處理後再交給server產生響應。 優勢是客戶不會被綁定都具體的node,只要還有一個node存活,用戶狀態都不會丟失,cluster都可以繼續工做。 缺點是node之間通訊頻繁,響應速度有影響,多併發、高頻操做的狀況下性能降低比較厲害。 二、 基於用戶的負載均衡 該種方式下,當用戶發出第一個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 就好了。node

相關文章
相關標籤/搜索