程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> nginx 與 tomcat 集群 一二事 (0),nginxtomcat

nginx 與 tomcat 集群 一二事 (0),nginxtomcat

編輯:JAVA綜合教程

nginx 與 tomcat 集群 一二事 (0),nginxtomcat


最近看了nginx以及tomcat的集群,做一下簡單總結吧

nginx 是一個http服務器,是有俄羅斯人發明的,目前主流的服務器,作為負載均衡服務器,性能非常好,最高支持5萬個並發連接數,在淘寶被廣泛使用

單個tomcat最大支持的用戶並發量默認是150,在測試過程中250左右開始會有性能的問題

舉個栗子,有3台tomcat,有N多請求同時經過nginx的時候,nginx作為一個路由,把請求分別分發給這3台tomcat,以此減少tomcat負重

tomcat 與 nginx 之間通過ajp協議,這個協議提供很高的通信速度以及性能

另外,nginx也能夠存放靜態資源,項目中會存在很多圖片,以及靜態頁面,如果把這些靜態資源放入nginx中,那麼性能會提高,速度是毫秒級別的,非常快

工作原理:

在upstream bakend 中配置多個tomcat服務器,每個請求按照不同的時間順序去請求不同的tomcat,如果在某一時段中有tomcat掛了,那麼會被自動剔除

ip_hash:主要用於解決session問題,使用後,每個用戶訪問的後端服務器就是固定的,session不會改變,這個也就是通常所說的粘性session,訪問速度快,只與一個節點上的服務器通信,缺點就是如果這個節點掛了,用戶的session信息也就沒了

*有粘性session那麼就又非粘性session,非粘性session指的就是session在多個tomcat之間復制,節點掛了也能訪問到,缺點就是在大並發的時候性能有影響

粘性和非粘性session都是基於msm的,也就是Memcached Session Manager; 話說tomcat和memcached 是無縫對接的

1   <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
2  memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
3     sticky="false"
4     sessionBackupAsync="false"
5     lockingMode="uriPattern:/path1|/path2"
6     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
7  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
8     />

sticky="false" 指定為非粘性session

 

簡單示意圖

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved