tomcat和Session複製介紹

2021-07-14 06:52:50 字數 2578 閱讀 2042

乙個配置檔案:

複製**

**如下:

說明如下:

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程式放在不同...