複寫訊息儲存

功能 > 叢集 > 複寫訊息儲存

如果訊息儲存在代理程式的硬碟上或單一資料庫中,那麼在訊息持久性方面,您會有單點故障的問題。如果遺失了整台機器、磁碟或資料庫,您就會遺失訊息。

對於某些高端使用者來說,訊息絕不應該遺失,因為它們可能會對業務產生重大影響。這類使用者通常需要某種災難復原 (DR)策略來支援訊息複寫,以便他們可以遺失整個資料中心而仍然不會遺失訊息。

有各種解決方案可以減少訊息遺失的機率。

使用 RAID 磁碟

如果您使用足夠條紋化的 RAID 磁碟,您只需重新啟動機器 - 或將磁碟移動到新機器並重新啟動代理程式即可。如果您是小型企業,這可能就足夠了,但如果您有嚴格的災難復原 (DR)要求,那麼如果您遺失了資料中心,RAID 選項就不是解決方案。

SAN 或共用網路磁碟機

如果您使用基於檔案的持久性機制之一,例如預設的高效能日誌和 Apache Derby,您可以寫入 SAN 或共用網路磁碟機,並且在發生故障時,使用故障代理程式中的檔案啟動新的代理程式。

此外,4.1 版允許您啟動多個從同一個共用檔案系統讀取的代理程式,以透過共用檔案系統主從功能支援高可用性。

主/從

另一種方法是使用主從功能將代理程式配對在一起,以便所有訊息都複寫到主代理程式和從代理程式,以確保訊息有兩個實體副本,以便可以處理災難性的硬體故障(例如遺失整個資料中心)。

叢集 JDBC 資料庫

各種資料庫(如 Oracle 和 MySQL)都支援叢集資料庫;因此,我們可以將這些資料庫與 JDBC MessageStore 一起使用,以獲得叢集訊息儲存。請注意,如果使用此選項,則必須停用高效能日誌(這會嚴重影響效能)。

使用 C-JDBC

如果您沒有或無法負擔叢集資料庫,則可以使用 C-JDBC 在多個實體資料庫之間複寫狀態,以避免單點故障並提供災難復原 (DR)解決方案。如上所述,使用複寫的 JDBC 方法非常慢,因為它要求我們停用高效能日誌。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 The Apache Software Foundation 的商標。Copyright © 2024, The Apache Software Foundation. 已根據 Apache License 2.0 授權。