官網(wǎng)文檔:https://tomcat.apache.org/tomcat-6.0-doc/config/cluster.html
本文為譯文,屬個人英語學習文,如誤導了你,先說聲抱歉。
- 介紹
Tomcat 集群實現(xiàn)會話復制,上下文屬性復制和集群內(nèi)war的部署。
雖然集群配置相當復雜,默認配置能符合大多數(shù)人的工作需要。
Tomcat 集群具有很好的擴展性,因此我們有很多的選擇,使得配置項看起來很多很多,但不要灰心,相反你有很大的控制能力,知道事情是怎么回事。 - Engine vs Host placement(引擎VS主機配置)
你可以將<Cluster>元素放在<Engine>或<Host>容器中。
把它放在引擎,意味著你將支持Tomcat集群中所有的虛擬主機,并分享消息組件。
把<Cluster>放在<Engine>元素中,群集將每個會話管理器的主機名追加到管理器名稱中,因此兩個上下文會有相同名稱,但在兩個不同的主機內(nèi)是可區(qū)分的。 - 上下文屬性復制
配置上下文屬性復制,簡單地配置這個 將應(yīng)用的上下文通過交換來實現(xiàn)。
<Context className="org.apache.catalina.ha.context.ReplicatedContext"/>
本文擴展了Tomcat StandardContext
因此,來自base implementation的所有選項都是有效的。
- 嵌套組件
Manager
會話管理器元素確定在集群實現(xiàn)中使用的是什么類型的會話管理器。此管理器配置與您在常規(guī)的<Context>配置相同。
默認值是org.apache.catalina.ha.session.deltamanager是緊耦合的,用simpletcpcluster實現(xiàn)。
其他管理如org.apache.catalina.ha.session.backupmanager
是散耦合,且不依賴于SimpleTcpCluster的數(shù)據(jù)復制。
Channel
通道和它的子組件都是集群組輸入輸出層的一部分,
它自己有一個模塊,已被命名為"Tribes"。
任何配置和調(diào)優(yōu)的網(wǎng)絡(luò)層、消息傳遞和會員的邏輯將在通道和它的嵌套組件中完成。
你可以找到更多關(guān)于的Apache Tribes 信息
Valve
Tomcat集群使用valve來追蹤請求進入和退出的servlet容器。
使用valve總能做出明智的判斷出在最后一個請求時做復制數(shù)據(jù)。
Deployer
Deployer組件是Tomcat的Fram Deployer。它在集群中部署和取消部署應(yīng)用。
ClusterListener
ClusterListener用于跟蹤消息發(fā)送和使用simpletcpcluster接收消息。如果您希望跟蹤消息,可以在這里添加一個偵聽器,或者您可以向channel對象添加一個valve。 - 棄用的配置項
棄用設(shè)置:在以前版本的Tomcat,你能夠管理會話管理器設(shè)置使用管理器。<property>=value.現(xiàn)在已停止使用,因它會干擾
在一個集群中支持多個不同管理器類的能力,且相同的屬性可能會對不同的管理人員有不同的效果。 - 屬性
simpletcpcluster屬性
className
主要的集群類,當前只有一個可用 org.apache.catalina.ha.tcp.SimpleTcpCluster
channelSendOptions
Tribes channel發(fā)送選項,默認為8 此選項用于設(shè)置標志,通過simpletcpcluster將消息發(fā)給所有人。該標志決定消息是如何發(fā)送的,是一個簡單的邏輯或。
int options= Channel.SEND_OPTIONS_ASYNCHRONOUS |
Channel.SEND_OPTIONS_SYNCHRONIZED_ACK |
Channel.SEND_OPTIONS_USE_ACK;
Some of the values are:
Channel.SEND_OPTIONS_SYNCHRONIZED_ACK = 0x0004
Channel.SEND_OPTIONS_ASYNCHRONOUS = 0x0008
Channel.SEND_OPTIONS_USE_ACK = 0x0002
因此,當使用ACK和ASYNC消息時,則flag需時10(8+2)
注意如果你使用異步消息傳遞,可以處理為一個會話更新消息的接收節(jié)點以不同的順序的順序發(fā)送。
channelStartOptions
設(shè)置群集的<Channel>對象的開始和停止標志。
默認的是channel.default開啟所有服務(wù),如發(fā)送、接收、組播發(fā)送者和接收者。
可用的標志如下:
Channel.DEFAULT = Channel.SND_RX_SEQ (1)| Channel.SND_TX_SEQ (2)| Channel.MBR_RX_SEQ (4)| Channel.MBR_TX_SEQ (8);
不使用組播而開啟一個channel,你需要使用channel.snd_rx_seq 或 channel.snd_tx_seq等于3。
heartbeatBackgroundEnabled
標記在容器后臺線程中是否調(diào)用channel心跳。默認值是false。
啟用此標志不要忘記禁用channel心跳線
notifyLifecycleListenerOnFailure
標記是否通知LifecycleListeners,當所有ClusterListener無法接收channel消息時,默認值是false。
doClusterLog
在6.0.0版本中廢棄
可用的值為true/ false
值繼承自Tomcat 5.5,官方并沒有給出明確意思。
配置日志記錄,使用標準的Tomcat日志配置。
clusterLogName
值繼承自Tomcat 5.5,官方并沒有給出明確意思。
配置日志記錄,使用標準的Tomcat日志配置。