2011-11-03 88 views
4

是否有人在使用NServiceBus時爲MSMQ隊列開發了一個體面的命名約定,其中在單個服務器上有很多隊列,但在其他服務器上也有很多隊列?NServiceBus隊列命名約定

我正在開發的系統將在一組服務器中擁有許多分立的子代碼庫,並且一些服務器將運行多個不相關的應用程序。

能夠打開msmq管理控制檯並立即知道所有隊列的用途將是很好的。

乾杯

回答

3

我相信你會發現許多不同的方法來做到這一點,你會發現開發人員。

我們實際上並沒有任何非NServiceBus隊列,所以我們沒有必要像Adam Fyles所建議的那樣在它們前面加上「nsb_」。

我們喜歡做一個大致模仿類命名空間的點分隔符號,比如「ProjectName.QueueName」。

或者對於真正的大型項目,在進行更多Udi風格的服務邊界分析時,我們會做更多的事情,比如「BigProjectName.ServiceName.QueueName」。

我們有一個NServiceBus集羣運行我們的分銷商,這是我們找到錯誤隊列的地方,所以每個終端都使用類似「Error @ NSBCluster」的東西。這使我們能夠從一個地方監控系統。

+0

對於中央錯誤(和審計)隊列+1,不必在羣集上,儘管 –

+0

感謝大衛,這是休和我在想什麼的結合。 「爲情況使用最合適的命名」。 – barthoda

1

我做什麼

  • ApplicationName.Input
  • ApplicationName.Error
  • ApplicationName.Input.Audit
+0

您是否曾經需要該方法中的另一個圖層,如? – barthoda

+0

沒有。這是因爲我的服務組合或粒度。每個NSB通用主機只有一個端點。 –

1

我們使用nsb_ $ endpoint_ $函數,其中$功能=錯誤或審計。 $函數僅僅停留在端點上。在安裝主機時,我們也使這個匹配顯示名稱和服務名稱。我們的管理員喜歡能夠將流程與服務匹配,然後匹配到隊列。