我正在使用本地數據中心的持久層在Amazon(AWS)雲中創建新的ASP MVC訂單應用程序。我將使用CQRS模式。該項目的目標是使用隊列來存儲和轉發寫入(命令/事件)的高可用性,這些寫入(命令/事件)可以在本地數據中心異步獲取和處理。然後,如果廣域網或本地數據中心發生故障,我的雲MVC應用程序仍然可以接受訂單並將其排隊,直到處理可以恢復。如何使用NServiceBus在AWS中實現消息隊列和處理
我首先想到的是使用AWS SQS進行排隊,並在自己的C#應用程序來處理傳入的消息/事件創建自己的隊列消費者/調度程序/處理程序。
MVC(@亞馬遜) - >事件/ POCO - > SQS - > QueueReader(@我的數據中心) - > DB
後來我發現NServiceBus。 NSB似乎很好地處理了很多細節:消息處理,重試,錯誤處理等。我討厭重新發明輪子,而NServiceBus看起來像一個功能完備且成熟的產品,對我來說是完美的。
但在進一步的研究,它看起來並不像NServiceBus是真正的意思被使用在廣域網物理上分開的環境(雲到數據中心我)。 Google和SO並沒有真正描繪出像我需要的那樣在WAN上使用NServiceBus。
我可以這樣做嗎?
MVC(@亞馬遜) - >事件/ POCO - > NServiceBus通過WAN - > NServiceBus處理器(S) - > DB
我如何使用NServiceBus跨廣域網?還是有更好的解決方案來處理亞馬遜和本地數據中心之間的排隊和消息處理?
NServiceBus現在完全支持SQS,因此您可以完全按照您最初計劃在數據中心中執行代碼的方式來獲取由您的亞馬遜的MVC前端通過它發送的消息。以下是關於NServiceBus中SQS的文檔:https://docs.particular.net/transports/sqs/ –