我們目前有一個應用程序,它使用服務代理將消息排隊以發送到通過Web服務接口與外部系統通信的外部系統。服務代理 - 與外部應用程序通信時的多個隊列與單個隊列
目前我們只與一家公司集成,所以一個隊列就足夠了 - 但是我們需要開始向多個使用相同Web服務接口的公司傳遞消息。
我想知道如果一個單一的隊列系統是足夠的,或者我們應該有一個隊列,每個公司。由於每個公司都有一個隊列,所以我擔心會擴大規模,因爲我們可能有很多隊列,然後有很多連接來檢查隊列。
只有一個隊列,我們可以根據需要添加更多的閱讀器。但是,如果我們無法與其中一個外部系統進行通信(例如連接問題),則該消息不存在問題,並且我們希望重試該消息,但我們不希望延遲那些公司的消息系統已經啓動。我想知道人們目前是如何處理類似的情況?
我們可以重新插入郵件,但是我擔心的是我們不保證發貨順序。
我的意思是重新插入的意思是,你將消息從隊列中取出並重新放入,所以你不會收到有毒消息。然而,你失去了訂單交付 - 我會按照你的建議查看掛起的請求表。 – spooner 2010-02-04 18:28:42
買了這本書,並給我我需要的一切。感謝您的高舉。 我認爲我的問題是我在考慮將郵件保留在隊列中的問題太多,而不是試圖在更合適的地方使用數據庫的其他功能(例如重試表)。 – spooner 2010-02-05 13:16:35
很高興我能幫到你。許多Service Broker的使用模式涉及一個表格,該表格保存處理相關消息(通常由會話組ID標識)之間的應用程序狀態,以便隊列讀取器可能確實是異步的。 – 2010-02-05 17:55:40