叢集物件
目錄
簡介
Tomcat 叢集實作提供 Session 複製、內容屬性複製和叢集範圍的 WAR 檔案部署。雖然 Cluster
組態相當複雜,但預設組態對大多數人來說應該能直接使用。
Tomcat 叢集實作非常具有擴充性,因此我們提供了許多選項,讓組態看起來很複雜,但不要失去信心,相反地,您可以對正在進行的事情有極大的控制權。
安全性
叢集實作基於所有叢集相關網路流量都使用安全、受信任的網路。在不安全、不受信任的網路中執行叢集並不安全。
有許多選項可以為 Tomcat 叢集提供安全、受信任的網路。這些選項包括
- 私人 LAN
- 虛擬私人網路 (VPN)
- IPSEC
EncryptInterceptor 提供機密性和完整性保護,但無法防範在不受信任的網路中執行 Tomcat 叢集的所有風險,特別是 DoS 攻擊。
引擎與主機配置
您可以在 <Engine>
容器或 <Host>
容器中配置 <Cluster>
元素。
將其放置在引擎中,表示您將支援 Tomcat 中所有虛擬主機中的叢集,並共用訊息元件。當您將 <Cluster>
放置在 <Engine>
元素內部時,叢集會將每個會話管理員的主機名稱附加到管理員名稱,以便可以區分具有相同名稱但位於兩個不同主機內的兩個內容。
內容屬性複製
若要設定內容屬性複製,只需透過換出用於應用程式內容的內容實作即可執行此動作。
<Context className="org.apache.catalina.ha.context.ReplicatedContext"/>
此內容會延伸 Tomcat StandardContext
,因此 基本實作 中的所有選項都是有效的。
巢狀元件
管理員:
會話管理員元素會識別此叢集實作中使用的會話管理員類型。此管理員設定與您會在一般 <Context>
設定中使用的設定相同。
預設值為 org.apache.catalina.ha.session.DeltaManager
,它與 SimpleTcpCluster
實作緊密結合。其他管理員(例如 org.apache.catalina.ha.session.BackupManager
)是/可能是鬆散結合的,且不依賴 SimpleTcpCluster
進行其資料複製。
通道:
頻道及其子元件都是叢集群組 IO 層的一部分,而且是我們暱稱為「Tribes」的模組。
網路層、訊息傳遞和成員資格邏輯的任何組態和調整都將在頻道及其巢狀元件中執行。您隨時可以進一步了解 Apache Tribes
閥門:
Tomcat 叢集實作使用 Tomcat Valves
追蹤請求何時進入和離開 servlet 容器。它使用這些閥門能夠在何時複製資料上做出明智的決策,這總是在請求結束時進行。
部署器:
部署元件是 Tomcat Farm Deployer。它允許您在叢集範圍內部署和取消部署應用程式。
叢集偵聽器:
ClusterListener 用於追蹤使用 SimpleTcpCluster
傳送和接收的訊息。如果您想要追蹤訊息,可以在此處新增一個偵聽器,或者可以將一個閥門新增到頻道物件。
屬性
SimpleTcpCluster 屬性
屬性 | 說明 |
---|---|
className |
主要的叢集類別,目前只有一個可用, |
channelSendOptions |
Tribes 頻道傳送選項,預設為
其中一些值為
各種
您也可以將這些選項設定為逗號分隔的字串,例如「async, multicast」,這會轉換成 |
channelStartOptions |
設定叢集使用的 <Channel> 物件的啟動和停止旗標。預設值為
當使用靜態成員服務 |
heartbeatBackgroundEnabled |
旗標表示是否在容器背景執行緒中呼叫通道心跳。預設值為 false。啟用此旗標請勿忘記停用通道心跳執行緒。 |
notifyLifecycleListenerOnFailure |
旗標表示如果所有 ClusterListener 無法接受通道訊息,是否通知 LifecycleListeners。預設值為 false。 |