NServiceBus教程-消息传递与处理
nservicebus”的容錯默認”設計的一部分,基礎設施管理事務自動所以你不需要記住所有的線程和狀態管理要素配置。
客戶端和服務器
理想情況下,服務器代碼處理消息事務,但它往往不是客戶所需,特別是桌面應用程序。這是一個之間的差異asa_client和asa_server設置的通用主機在nservicebus。
指定交易代碼
如果你不使用通用的主機,您可以指定當前端點應處理消息事務設置istransactional(真的)。后msmqtransport()。(版本3)或usetransport < >(MSMQ)。(版本4)。
覆蓋系統。交易的默認超時10分鐘,按照描述的步驟這篇博客。
分布式事務處理協調器
在Windows中,有一個操作系統級別的服務管理需要跨多個資源的交易直接轉矩控制,如隊列和數據庫。這項服務并不總是正確的配置可能需要檢修。下載一個工具叫dtcping幫助你發現如果一臺機器可以訪問在遠程機的直接轉矩控制。這個工具看起來像這樣。
如果你得到一個錯誤指的是RPC終結點映射器,在命令提示符下,運行組件服務。你應該看到屏幕下方的組件服務。
打開一些端口,通過右鍵單擊“我的電腦”,將“默認協議”選項卡。從那里,選擇“面向連接的TCP / IP”并單擊“屬性”按鈕。在“性能COM網絡服務”對話框中,檢查端口范圍包括“5000-6000”,如圖所示:
如果端口列表為空,點擊“添加……”按鈕并輸入 “5000-6000”對話框。你的屏幕看起來應該像上面的圖片。你可能做不到1000個開放口岸,但這取決于機器的數量在DTC互相連接。
單擊確定后,返回組件服務的屏幕,瀏覽到“本地DTC”節點的分布式事務協調器的文件夾,在右鍵單擊,選擇“屬性”。在打開的對話框中,選擇“安全”選項卡,如圖所示:
確保你看到的性能與上述相同,重新啟動計算機。
如果dtcping不工作,檢查所需的防火墻中的端口是開放的。考慮刪除防火墻中的例外和補充DTC再次確認。
如果給你一個尋找dtcping名稱消息但沒有達到,通過運行“ping計算機名”在命令提示符下做一個簡單的平。如果機器不能達到的平,這可能是你有一個DNS的問題,可能需要您的網絡管理員的幫助。
確保你完成所有的步驟,不只是連接到數據庫服務器,而且在數據庫服務器和。
最后,檢查使用中的服務器的TCP端口,確保每一個不同的端口配置為雙向通信。在這一點上,你應該能夠運行事務nservicebus端點。
消息處理循環
信息如下在nservicebus加工:
一個成功的反序列化后,所有的基礎設施和應用消息nservicebus調用模塊和處理程序。在這一步異常導致事務回滾和消息返回到輸入隊列。
- 這是“maxretries”可配置次數。
- 在那之后,消息傳來二級重試(SLR)。
- 如果在單反的錯誤仍然存在,該消息將被移動到配置錯誤隊列。
在這種方式中,即使在各種故障情況下,如應用服務器重新啟動的消息或數據庫死鎖中,信息不會丟失。
自動重試機制通常能夠從暫時的問題恢復。如果這是不可能的,把消息傳遞到單反相機決定下一步做什么。
解決更多的永久性錯誤
在永久的錯誤會影響系統的情況下,盡管他們的多樣性的解決方案是相同的,nservicebus。在描述它,讓我們看到這些情況的例子:
- 數據庫是。
- 一個內部或外部Web服務是下。
- 系統升級不小心,打破向后兼容性。
在以上所有,行政行為是必要的,從一些簡單如建立數據庫或Web服務,到更復雜的動作像恢復到以前的系統版本。
單反相機也有助于固定的錯誤決議。
這消息本身并沒有錯。它可能包含不迷失在這些條件下,有價值的信息。因此,管理員完成解決問題后,他們會回復郵件來自隊列。幸運的是,有一個工具nservicebus確實。
returntosourcequeue.exe
你可以在你的下載目錄nservicebus“工具”,找到這個工具。
管理員提供的錯誤隊列他們想要使用,或者指定一個特定的消息ID返回到它的源隊列,或所有返回給定誤差每個排隊到各自的源隊列中的所有消息。
轉載于:https://www.cnblogs.com/powerxu/p/4294268.html
總結
以上是生活随笔為你收集整理的NServiceBus教程-消息传递与处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode:999. 车的可用捕获
- 下一篇: 计算机网络之数据链路层:16、无线局域网