2012-08-23 46 views
1

介紹
多條消息,我最近創建使用NServiceBus設計工具相同的解決方案中的一些應用。這一切都工作得很好,因爲它允許我把所有東西都保存在一個標準中。我注意到的是,該工具似乎希望將所有的消息,命令和事件保存在我自己創建的服務中的自己的程序集中。發送從NServiceBus

考慮以下設置:
解決方案名稱:TestCompany
服務創建:TestCompany.Sales,TestCompany.Finance,TestCompany.Monitoring

以上將創建一個TestCompany.InternalMessages組裝和監控服務基本上是記錄可能發生的任何錯誤的中心點。我希望其他服務可以通過它發送消息。

問題
我在這種情況下值得關注的是,我想銷售服務發送消息到金融服務,以及一個錯誤監控應該發生。在單播設置中,您輸入了程序集並且它是目的地,但是我基本上希望爲程序集中的不同消息輸入不同的目標。我知道我可以很好地創建自己的程序集並將消息傳遞給它,但它似乎違背了設計人員試圖推動的目標。有什麼建議麼?

更新

我相信我有對付輕微相關造型模板的安裝方式的問題。我注意到它們並不適合我,因爲我無法將組件添加到端點設計器,也不能在沒有收到空引用異常的情況下右鍵點擊。刪除和重新安裝似乎無法解決問題。

+0

爲什麼不只是讓監控服務使用錯誤隊列作爲它們的輸入隊列和日誌消息,這樣其他服務就不必依賴於監控服務。 – stephenl

+0

出現在錯誤隊列中的消息並沒有真正提供它首先出現的原因。發送的消息提供了諸如堆棧跟蹤及其來源等信息。 – Ryan

+0

在errorq –

回答

1

我們在建模工具中使用這種方法的原因是隨着項目數量的增加,Visual Studio的性能下降。它是當前事物計劃中最少的罪惡。

您應該考慮的一件事是內置的審計功能,因爲它們會將通過系統流動的所有消息轉發到中央隊列 - 後面可以放置您的監控服務。

+0

謝謝,這只是其中一件事情沒有與我坐在一起,但至少推理是有道理的。我會看看審計的想法,我沒想過爲此使用它。 – Ryan

0

您可以在程序集中輸入每個消息的目的地。我不知道這是怎麼通過NServiceBus設計工具完成,但在您的配置,這將是這樣的:

<UnicastBusConfig> 
    <MessageEndpointMappings> 
     <add Messages="TestCompany.SalesMessages.NewSaleCreatedMessage" Endpoint="FinanceService" /> 
     <add Messages="TestCompany.SalesMessages.ErrorMessage" Endpoint="MonitoringService" /> 
    </MessageEndpointMappings> 
</UnicastBusConfig> 

這是你每服務創建消息大會最佳實踐。 (我不知道設計師是如何處理這個的)

+0

嗨,儘管這個工作是圍繞設計師工作的。這讓我懷疑設計師是否有缺陷,或者僅僅是我的實施。 – Ryan

相關問題