2013-06-19 42 views
1

如何使用MassTransit和MSMQ正確設置具有多個訂閱者(全部收到發佈的消息)的發佈者 - 訂戶體系結構。如何正確設置使用MassTransit和MSMQ的發佈者 - 訂戶體系結構?

請注意,我不想使用MSMQ多播功能,因爲它有點片狀,並依賴於PGM(它有自己的一些限制)。

我已閱讀thisthisthis但還是無法弄清楚我應該如何設置

  1. 訂閱服務,
  2. 出版商,
  3. 和幾個用戶。

特別是在許多例子中使用的sbc.UseSubscriptionService("uri");現在已經過時(我正在使用MassTransit 2.7)。過時的評論說The extension method on UseMsmq should be used instaed,但我找不到這樣的方法。
我們應該如何建立訂閱服務?

MassTransit Github頁面上的Distributor示例與我想要的最接近,但它設置了消費訂閱者。

請指點或提供一個示例,說明如何設置可能有多個訂閱者的發佈者訂戶體系結構。

謝謝你的時間。

回答

0

我認爲「設置消費訂戶」是放棄您的難度來源 - 所有訂戶都是「消費訂戶」。

思考MassTransit的最佳方式是扇出:MassTransit爲所有對特定類型消息感興趣的消費者維護路由。您在一個或多個終端設置一個或多個消費者,MassTransit確保消息的副本獲取給每個消費者。

經銷商實際上是一個專門的案例,這是故意不是真實的,而不是你應該看的,除非你對負載均衡感興趣。 以下是相關文檔鏈接:http://docs.masstransit-project.com/en/master/overview/publishing.html#plain-msmq

2

要使用UseSubscriptionService擴展方法,您需要導入MSMQ配置名稱空間。

Imports MassTransit.Transports.Msmq.Configuration 

你現在可以這樣寫(VB.Net)

sbc.UseMsmq(Sub(c) 
    c.UseSubscriptionService(ConfigurationManager.AppSettings("MassTransit_SubscriptionService")) 
End Sub) 

這是用於配置服務,但爲了使一切正常工作(使用MSMQ),你需要有MassTransit運行時服務(可從GitHub MassTransit Runtime Services獲得最新版本;您需要使用這個版本,而不是MassTransit網站上的二進制文件提供的版本,這些版本已過時)。

一旦你下載了源代碼,你應該先運行SetupSQLServer.sql。 接下來是調整配置文件以指向您的數據庫並使用正確的憑據。 您現在應該運行此程序(作爲控制檯在開發過程中,但最好作爲非開發環境中的Windows服務安裝)。確保控制檯在啓動發佈者/訂閱者之前,因爲他們依賴於此「服務」。

我剛剛意識到一個功能齊全的設置,並體驗了我的幸福時刻。我打算對我所有的步驟進行全面的寫作,但我希望這已經有所幫助了。

This article explains the setup of the Runtimeservice in a little more detail.

相關問題