Sun Java System Application Server 9.1 部署規劃指南

多個代理程式叢集

MQ Enterprise Edition 支援使用多個互連的代理程式實例,稱為代理程式叢集。對於代理程式叢集,用戶端連線會分散至叢集中的所有代理程式。叢集可提供水平可延伸性並可提高可用性。

單一訊息代理程式可延伸至約八個 CPU,並為一般應用程式提供足夠的流量。若代理程式程序故障,則會自動重新啟動。但是,隨著連線至代理程式的用戶端數目增加,以及提供的訊息數目增加,代理程式終會超過檔案描述元的數目與記憶體等限制。

在叢集中有多個代理程式而非只有一個代理程式,可讓您:

但是,具有多個代理程式並不保證代理程式故障時,進行中的作業事件會繼續在替代代理程式上執行。當 MQ 使用叢集中不同的代理程式重新建立故障的連線時,會失去作業事件訊息傳送並回復進行中的作業事件。除了無法完成作業事件之外,使用者應用程式將不會受到影響。由於可繼續使用連線,因此確認了服務容錯移轉功能。

因此,MQ 不支援在叢集中的高可用持續性訊息傳送。若代理程式在故障後重新啟動,則將自動回復並完成持續性訊息的傳遞。持續性訊息可儲存在資料庫中或儲存於檔案系統上。但是,若代管代理程式的機器未從硬體故障中回復,則可能遺失訊息。

內含適用於 Sun Message Queue 之 Sun Cluster Data Service 的 Solaris 平台,支援不需設定即可針對持續性訊息進行容錯移轉。此配置運用 Sun Cluster 的全域檔案系統及 IP 容錯移轉,提供實在的高可用性並隨附於 Java Enterprise System 中。

主代理程式與用戶端同步化

在多個代理程式配置中,每個目標會在叢集中所有代理程式上遭到複製。每個代理程式知道在所有其他代理程式上的目標註冊之訊息用戶。因此,每個代理程式可從其自己的直接連線訊息生產者,將訊息路由至遠端的訊息用戶,並從遠端生產者將訊息傳遞至自己的直接連線用戶。

在叢集配置中,每個訊息生產者直接連線的代理程式會為該生產者傳送的訊息執行路由。由此,持續性訊息會再透過訊息的主代理程式進行儲存與路由。

當管理員建立或銷毀代理程式上的目標時,此資訊會自動傳播至叢集中的所有其他代理程式。同理,當訊息用戶向主代理程式註冊,或從其主代理程式中斷連線時 (明確指定、由於用戶端或網路故障,或由於其主代理程式關閉),有關此用戶的資訊會在整個叢集中傳播。有關長期訂閱的資訊也會以類似的方式傳播至叢集中的所有代理程式。