乙個配置檔案:
複製**
**如下:
說明如下:
1、cluster
複製**
**如下:
1)tomcat集群主元素,在這個元素裡面可以配置集群的所有詳細資訊
2)classname主要的集群類,當前只提供了org.apache.catalina.ha.tcp.******tcpcluste作為實現類
3)channelsendoptionssession傳送方式,預設值是8,這個標識確定通過******tcpcluste如何傳送訊息
4) channel.send_options_synchronized_ack = 0x0004
channel.send_options_asynchronous = 0x0008
channel.send_options_use_ack = 0x0002
如果使用(asynchronous)加(use_ack)方式來傳送訊息,那麼值應該是10(8+2)或者0x000b
如果使用(synchronized_ack)加(use_ack)方式來傳送訊息,那麼值應該是6(4+2)或者0x0006
2、manager
複製**
**如下:
1)管理tomcat之間的session複製
2)classname當前有兩個實現類:org.apache.catalina.ha.session.deltamanager和org.apache.catalina.ha.session.backupmanager
3)deltamanager複製並傳送session資料到集群下所有的節點,這個實現類被證明非常可靠、執行得非常好。不過有個侷限性就是集群的節點型別要相同,而且要部署相同的應用程式
4)expiresessionsonshutdown當乙個web程式被結束時,tomcat分發銷毀命令到每個session,並通知所有session listener執行。當集群下某個節點被停止時,如果想銷毀所有節點下的的session,設定為true,預設為false
5)notifylistenersonreplication如果設定為true,當session屬性被複製和移動的時候,session listener被通知
3、channel
複製**
**如下:
channel是apache tribes的主元件,channel管理一組子元件,並和它們一起組成了tomcat例項間的通訊框架。在tomcat集群中,deltamanager通過******tcpcluster呼叫channel來實現資訊傳遞,而backupmanager自己呼叫channel以及子元件這些元件來實現資訊傳遞。replicatedcontext也會呼叫channel傳遞context屬性。
4、membership
複製**
**如下:
membership元件自動檢索發現集群裡的新節點或已經停止工作的節點,並發出相應的通知。預設使用組播(multicast)實現。
5、receiver
複製**
**如下:
負責監聽接收其他節點傳送過來的資料。預設使用non-blocking tcp server sockets。
6、sender
複製**
**如下:
管理從乙個節點傳送到另外乙個節點的出站連線和資料資訊,允許資訊並行傳送。預設使用tcp client sockets。
7、interceptor
複製**
**如下:
channel通過interceptor堆疊進行訊息傳遞,在這裡可以自定義訊息的傳送和接收方式,甚至membership的處理方式。
8、value
複製**
**如下:
1)value在呼叫http request 鏈中起著***的作用,用來決定什麼情況下資料需要被複製。
org.apache.catalina.ha.tcp.replicationvalve,replicationvalue在http request結尾判斷當前資料是否需要被複製。
2)filter內容為url或者檔案結尾,當訪問鏈結配置filter時,不論實際session有沒有改變,集群會認為session沒有任何變化,從而不會複製和傳送改變的session屬性。
9、deployer
複製**
**如下:
使集群支援farmed deployment
10、clusterlistener
複製**
**如下:
clusterlistener用來追蹤資訊傳送和接收。
clustersessionlistener用來監聽集群元件接收資訊,當使用deltamanager的時候,資訊被集群接收,並通過clustersessionlistener傳遞給session manager。
tomcat集群session共享
才疏學淺且語無倫次,如有誤人子弟,深表歉意 一台tomcat不夠用時,要麼換更好的機器,要麼加機器做集群。做集群就會涉及到負載均衡,比如nginx,會把到來的每個請求按一定的規則 給後端tomcat,這就有乙個逃避不了的問題需要解決,使用者的session需要在不同的tomcat之間共享。比較偷懶的...
Tomcat實現Session複製
tomcat實現session複製 需要三颱虛擬機器一台nginx兩台tomcat 關閉相關的安全機制 systemctl stop firewalld iptables f setenforce 0 首先需要將兩台tomcat和一台nginx實現負載均衡 root nginx vim usr lo...
tomcat集群session共享
tomcat集群配置其實很簡單,在tomcat自帶的文件中有詳細的說明 docs cluster howto.html 只不過是英語的,對我這樣的人來說很難懂 下面根據說下怎麼配置吧 第一步 準備工作 準備幾份tomcat程式,比如分別叫tomcat1 tomcat2 如果各tomcat程式放在不同...