2012-04-27 71 views
0

我一直在試圖找出方法來提高我們的nservicebus代碼性能。我搜索並偶然發現了您可以在運行/安裝nservicebus主機時設置的配置文件。在NServiceBus配置文件

目前我們正在運行nservicebus主機,並且我在默認情況下閱讀了這個文件,我們使用的是可用配置文件的「Lite」版本。我也從這個鏈接瞭解到:

http://docs.particular.net/nservicebus/hosting/nservicebus-host/profiles

有集成和生產概況。文檔沒有多少說明 - 有沒有人嘗試過產品配置文件,並注意到nservicebus性能有所提高?特別影響消耗隊列中消息的速度?

回答

0

NSB配置文件之間的一個主要區別是它們如何處理訂閱的存儲。

精簡版,集成和生產配置文件允許NSB配置它的可靠性。例如,lite配置文件爲所有發佈/訂閱註冊使用內存中訂閱存儲。這是一個問題,因爲爲了在Lite配置文件中註冊用戶,發佈者必須已經在運行(因此發佈者可以將訂閱者列表存儲在存儲器中)。這意味着,如果發佈者由於某種原因(或已脫機)崩潰,則所有訂閱信息都將丟失(直到每個訂閱者重新啓動)。

因此,如果您在開發人員計算機上運行,​​並且希望快速測試您的服務如何交互,那麼精簡配置文件是很好的。但是,它不適用於其他環境。

集成配置文件將訂閱信息存儲在本地隊列中。這對於簡單的環境(如QA等)來說可能很好。但是,在高度分散的環境中,將訂閱信息保存在數據庫中是最好的,因此也就是生產配置文件。

因此,要回答您的問題,我不認爲通過更改配置文件您會看到性能提升。如果有的話,從精簡配置文件更改爲其他配置文件之一可能會降低性能(因爲您承擔訪問隊列或數據庫存儲的成本)。

0

除非您自己調整日誌記錄,否則我們已經看到基於減少日誌記錄的巨大改進。閱讀隊列的表現是一樣的。由於隊列是本地的,你不會從運輸中獲得太多收益。我會考慮調整您的處理程序和底層基礎架構。您可能想要查看調優MSMQ並查看您正在使用的磁盤等。另一個地方是查看分佈式事務如何工作,假設您正在使用需要它們的遠程數據庫。

增加處理時間的另一個選項是增加消耗隊列的線程數。這將需要許可證。如果許可證不是選項,則可以運行單個線程端點的多個實例。這要求您根據消息類型或其他內容分割您的工作。

繼續擴大規模,您可以使用分銷商來負載平衡工作。再次,這將需要許可證,但您可以根據需要添加更多節點。上述所有機會也適用於此拓撲。