Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java System Message Queue 3 2005Q1 技術概述 

第5章
代理程式叢集

Message Queue 企業版支援使用代理程式叢集代理程式的群組一起工作,為用戶端提供訊息傳送服務。叢集可使訊息伺服器透過分散用戶端的連線至數個代理程式,來調整其訊息流量的作業。

本章說明代理程式叢集的架構和內部功能。它涵蓋以下主題:

如果您是負責配置和管理代理程式叢集的管理員或是需要測試使用叢集的訊息應用程式之開發者,則您必須閱讀本章。


叢集架構

圖 5-1 顯示代理程式叢集的 Message Queue 架構。叢集中的每個代理程式均與所有其他代理程式直接相連。每個用戶端 (訊息產生者或用戶) 擁有單獨的本機代理程式並利用它直接溝通、傳送和接收訊息,猶如此本機代理程式為叢集中唯一的代理程式。不過真相是,本機代理程式與叢集中其他代理程式一起合作,分擔為所有連線的用戶端提供傳送服務的負載。

在叢集中的一個代理程式可被指定為主代理程式。主代理程式會維護配置變更記錄其中記錄了對叢集的永久性實體 (目標與長期訂閱) 所做的變更。此記錄是用來傳遞此類變更資訊給變更發生時離線的代理程式;請參閱以下叢集同步化中的詳細說明。

圖 5-1 叢集架構

圖表顯示三個叢集代理程式,其中一個為主代理程式。圖以文字介紹。

下列各節說明如何在叢集中執行訊息傳送以及代理程式如何配置和同步,即使一或多個代理程式處於離線的狀態。

訊息傳送

在叢集配置中,每個目標都會在叢集中的所有代理程式上複製。每個代理程式均瞭解已註冊所有其他代理程式之目標的訊息用戶。因此,每個代理程式均可將訊息從其直接連線的訊息產生者路由至遠端訊息用戶,並將訊息從遠端產生者傳送至其直接連線的用戶。

訊息產生者的本機代理程式處理所有儲存和路由,並處理所有用戶端對該產生者所創建訊息的確認。若要最小化叢集中的訊息流量,只有在訊息將傳送給連線到目標代理程式的用戶時,才會將訊息從一個代理程式傳送到另一個代理程式。在某些情況下 (如至多個用戶的佇列傳送),流量可再進一步降低,方法為指定優先傳送到本地用戶,之後再傳送到遠端用戶。某些情況要求用戶端和訊息伺服器間實現安全的加密訊息傳送,此時可以對叢集配置,使叢集中代理程式間的訊息傳送也實現安全性。


備註

在某些異常狀況中,叢集環境中的目標特性通常會整個套用到整個叢集,而非套用到個別的目標實例。請參閱「Message Queue 管理指南」以獲得特定目標特性的資訊。


叢集配置

若要在啟動時在叢集中的代理程式之間建立連線,每個代理程式必須傳送所有其他代理程式的主機名稱與連接埠號碼 (包括主代理程式,如果有的話)。此資訊由一組叢集配置特性指定,而叢集中所有代理程式的這些設定都應該相同。雖然您可個別指定每個代理程式的配置特性,但此法易產生錯誤並可能導致叢集配置的不一致性。反之,我們建議您將叢集配置特性放在啟動時每個代理程式均參照的一個中央叢集配置檔案。此舉確保所有代理程式共用相同的配置資訊。

請參閱「Message Queue 管理指南」以獲得叢集配置特性的詳細資訊。


備註

雖然叢集配置檔案原意是用作配置目的,但它也是用來儲存叢集中所有代理程式共用的其他特性的好地方。


叢集同步化

每當叢集的配置變更時,關於變更的資訊即自動傳遞至叢集中的所有代理程式。此類配置變更包括:

此類配置變更資訊將立即傳遞至變更發生時叢集中所有連線中的代理程式。但是,離線的代理程式 (例如,已損毀的代理程式) 將不會在變更發生時收到通知。為了顧及到離線的代理程式,Message Queue 為叢集維護了一個配置變更記錄,記錄所有被建立或銷毀的永久性實體 (目標與長期訂閱)。當離線的代理程式重新連線時 (或當新的代理程式加入叢集中時),它會參考此記錄取得關於目標與長期訂閱的資訊,然後與其他代理程式交換有關目前使用中的訊息用戶的資訊。

叢集中的一個代理程式被指定為主代理程式,負責維護配置變更記錄。因為其他代理程式無法在主代理程式不在線上時完成它們的初始化,所以主代理程式應永遠是叢集中最先啟動的代理程式。如果主代理程式離線,則配置資訊將無法在叢集中傳遞,因為其他代理程式無法存取配置變更記錄。在這些情況下,如果您嘗試建立或銷毀目標或長期訂閱,或嘗試執行如重新啟動長期訂閱的相關作業,則會出現異常。(但非管理訊息的傳送則會繼續正常工作。)


部署環境

代理程式叢集的使用取決於它們是部署在開發環境還是生產環境。

開發環境

在開發環境中,叢集用於測試,而延展性與代理程式回復並非重要注意事項,因此不需要主代理程式。在測試情況下,目標通常是自動建立的 (請參閱自動建立的目標) 且這些目標的長期訂閱由要進行測試的應用程式建立和銷毀。在未配置主代理程式的環境中,Message Queue 不需要主代理程式處於執行狀態以啟動其他代理程式,並且允許對目標與長期訂閱進行變更並將它們傳遞至所有執行中的代理程式。(但是,如果代理程式離線並隨後復原,則它將不會與其離線時所作的變更同步。)如果您重新配置環境以使用主代理程式,Message Queue 將重新強加正常需求。

生產環境

在生產環境中,延展性與代理程式回復重要注意事項,因此必須使用主代理程式並維護配置變更記錄。此舉確保如果代理程式離線並隨後復原,則它將會與其離線時所作的變更同步。

事實上,最好定期備份配置變更記錄,以防止意外損毀記錄並避免主代理程式發生故障。Message Queue 為備份和復原配置變更記錄提供了指令行選項。如有必要,您也可變更作為主代理程式的代理程式。請參閱「Message Queue 管理指南」,以取得更多資訊。



上一頁      目錄      索引      下一頁     


文件號碼 819-2224。   Copyright 2005 Sun Microsystems, Inc. 版權所有。