2009-09-26 64 views
10

我認爲標題總結了所有....我們有一個.NET 2.0系統試圖實現分佈式pub/sub模型。我遇到NServiceBus,RhinoBus和MassTransit。不幸的是,這些都是基於MSMQ的。我的任務是弄清楚使用不同郵件替代方案的pub/sub選項...NServiceBus的替代品,不使用MSMQ

尋求MSMQ替代方案的唯一原因是克服郵件大小限制。由於我們的企業應用程序的消息有可能被截斷每條消息限制由於...

任何指導是非常讚賞

+1

[MassTransit](http://readthedocs.org/docs/masstransit/en/latest/)支持RabbitMQ和AzureServiceBus。 – Henrik 2012-04-26 18:18:55

回答

2

沒有爲NServiceBus一個Roadmap,指出他們打算提供一個更可插入傳輸允許替代MSMQ。

MassTransit還建議他們的目標是支持替代方案。

Unfortunatley這些都還沒有。

-1

我爲此使用了一對數據庫表。

+0

我不認爲這回答了這個問題... – Henrik 2010-08-14 15:42:51

+3

當然可以。我使用數據庫表作爲持久隊列來避免使用MSMQ。即使有多個讀者和作者,它也能很好地工作。數據庫事務提供併發控制。它們還在系統崩潰的情況下提供持久性。 – 2010-08-15 17:33:23

+1

我不得不同意。我們從主要零售商那裏剔除了一個BizTalk實現,並用三個SQL Server表替換了它。更簡單,更便宜。顯然他們沒有使用BizTalk的所有功能。 – Perhentian 2012-02-02 10:45:36

0

如果你有它的預算,你總是可以使用Biztalk。

如果你想要做一些更有趣,你可以使用微軟的Azure服務總線http://www.microsoft.com/azure/servicebus.mspx

你可以使用SQL服務代理http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx。不確定是否有計劃停止這一事件。

或者你想要這樣的作品,使用SQL表:)

+0

你的建議看起來很激進; NServiceBus被公佈爲一個平臺,用於在服務器之間同步和/或加載InProc緩存。查看Udi Dahan的博客。 Azure和BizTalk是系統間消息傳遞平臺;又名EDI和前往微軟的往返...... :) MSMQ不是一個可擴展和可靠的企業解決方案。對於小型數據包移動而非企業級數據非常有用。影響操作系統,操作系統鎖定和消息截斷的主磁盤碎片的挑戰各不相同。 SQLCE是一個選項,但已被證明是InProc活動的性能瓶頸。 – G33kKahuna 2009-09-30 15:08:00

+0

是的,我同意它有點激進,只是想給你一個全面的選擇範圍的想法。如果您正在查看SQLCE,您是否正在研究移動設備?如果是這樣,請查看Microsoft Sync Framework http://msdn.microsoft.com/zh-cn/sync/default.aspx – 2009-09-30 15:44:35

+1

@ G33kKahuna:「MSMQ不是可伸縮且可靠的企業解決方案」 - 您爲什麼這麼認爲?你能指出我正確的方向,指出它的侷限性嗎?我目前正在評估MSMQ是否適合某個項目,並且很好地瞭解這一點。 – adrianbanks 2010-01-26 16:31:33

6

恩,老問題,但值得一提的是NServiceBus現在支持ActiveMQ(作爲一種選擇)與其他人在開發。也有人談到實施「數據總線」來克服消息大小的限制,但我不知道這一情況。

基礎架構可以插入不同的傳輸,我記得有關使用Sql Server Service Broker的討論,但我不知道這是否超出了初始討論的範圍。

-2

我目前正在開發基於WCF的開源服務總線。你可以在這裏找到它:http://rockbus.codeplex.com/。它支持動態(@運行時)訂閱,訂閱庫(數據庫),可插拔傳輸,基於XPath的基於內容的路由,通過wcf協議進行交易傳遞,roundrobin傳遞,可插拔訂閱評估等。看一看!

+0

小心回答相同的答案;在這兩個特定的情況下,它似乎只是在線路的安全方面,但不要過分。答案應該解決個別問題。謝謝! – sarnold 2011-06-29 08:59:50

1

老問題,但值得重視的一個最新的答案。對於那些開發企業級應用程序的人來說,Windows Azure Service Bus自成立以來的確有很長的路要走,對於任何有興趣實施pub/sub模型的人來說,都值得仔細關注。以下是Windows Azure的服務總線的一些亮點...

  • 包括一個Windows Azure Tools SDK for .Net這使得開發任何.NET語言非常容易。

  • 有一個Explorer Tool這是一個GUI界面,可以方便地管理和測試你的隊列。一個版本內置於Visual Studio中,另一個版本是獨立應用程序。

  • 其包含三種通訊模式

    • 繼電器 - 設計內部應用程序和雲應用
    • 的Pub/Sub之間的溝通 - 在Azure中被稱爲「主題」,其提供的發佈/訂閱模式的消息。
    • 經紀商信息 - 解耦郵件,發件人和收件人不必同時在線。
  • 支持事務行爲(消息guarateeed交付)

  • 最重要的是,微軟認爲未來在雲計算所以這隻會變得更好。

  • 該技術的最大缺點是Windows Azure專爲大型企業環境而設計,因此非常昂貴。

這裏是一個很好的網站,提供有關的Windows Azure Service Bus

BTW最新功能更詳細信息:我沒有以任何方式與項目建立在微軟無關。我只是來自使用NServiceBus的背景,發現它很容易轉換到Windows Azure服務總線,因爲模型相似。