2012-11-07 28 views
2

我正在評估使用NServiceBus作爲我們產品中的SOA機制。我正在研究使用發佈/訂閱模式,我的理解是訂閱服務將存儲所有訂閱。RavenDB訂閱存儲是NServiceBus故障的中心點嗎?

這是否意味着如果我的RavenDB服務器出現故障,那麼我的發佈者將無法發送給訂閱者?或者,有沒有辦法讓發佈商緩存它擁有的訂閱者,如果RavenDB不得不關閉,那麼它將會向其已知的訂閱者發送?

回答

3

您可以將RavenDB服務器作爲複製節點運行,以避免這是單點故障。

3

一般模式是讓端點擁有充當工作者和分配者的主節點,然後主節點在同一臺服務器上使用Raven安裝來存儲其訂閱和傳奇存儲。

因此,這是一個端點的故障點,但分佈式系統中的其他端點將在他們自己的服務器上使用Raven安裝。因此,系統保持分佈式,整個系統沒有單點故障。 RavenDB支持這個功能,因爲它可以很容易地安裝在任何服務器上。

將此與SQL Server進行對比,SQL Server經常是集中式的,擴展到最大,甚至是集羣以提供高可用性。 (閱讀:昂貴!)

+0

感謝大衛的迴應。但是,我想在每個端點上安裝多個ravendb來分散您的訂閱存儲會變得更加昂貴,因爲我會爲每次安裝支付許可證費用? –

+2

RavenDB包含在NSB許可證中,因此不需要額外的許可證費用 –

1

您還可以在Windows故障轉移羣集中運行RavenDB,其中節點使用共享SAN作爲RavenDB數據文件。如果主動節點死亡,另一個接管。由於數據存儲在SAN上,除了在新節點上啓動RavenDB Windows服務所需的時間外,您甚至不應該注意到它。退房http://ravendb.net/docs/server/administration/fmc_configuration

這也是與分銷商一起運行時推薦的高可用性設置。 http://docs.particular.net/nservicebus/scalability-and-ha/distributor/