2010-08-13 107 views
0

我們正在將我們的.NET平臺從使用MSMQ移動到ActiveMQ。我們每天會抽出超過3千萬個持續消息,因此吞吐量和容量對我們至關重要。我們配置MSMQ相關應用程序的方式是先寫入本地/專用隊列。然後我們有一個本地服務將這些消息路由到它們各自的遠程隊列進行處理。這確保了初始入隊/寫入寫入速度快(是的,我們也可以使用異步入隊),並且如果遠程服務器不可用,則不會丟失消息。如何使用NAS實現ActiveMQ與虛擬機使用NAS

我們打算使用與ActiveMQ相同的範例,但現在我們決定轉移到使用虛擬機與NAS存儲以用於大多數應用程序服務器。這會極大地降低每條消息的寫入性能,因爲它要存儲到NAS中,我覺得我需要重新考慮我們的排隊方法。我想知道什麼被認爲是使用ActiveMQ的最佳實踐,具有持續的高吞吐量需求。我應該考慮使用專用隊列服務器(不是VM)嗎?但是這意味着應用程序的所有寫入都直接通過網絡。我該如何處理高可用性要求?

任何建議表示讚賞。

回答

1

您可以在network of brokers中部署ActiveMQ實例,並且該拓撲可以包含本地實例以及遠程實例。我已經部署了包含ActiveMQ本地實例的拓撲,以便消息儘可能地靠近發送者,然後根據需求將消息轉發到遠程ActiveMQ實例。採用這種拓撲結構,我建議配置網絡連接器以禁止來自所有目的地的轉發消息。即,不是公開允許轉發所有目的地的消息,而是希望縮小使用excludedDestinations屬性轉發的消息數量。

就ActiveMQ的高可用性而言,master/slave配置正是爲此而設計的。它有三種口味,取決於你的需求。

希望有所幫助。

Bruce