我正在考慮在兩個.NET應用程序之間使用Service Broker進行消息傳遞,其中一個應用程序需要可靠地向另一個應用程序發送消息。我有一個很好的主意,看看這是如何看待發起人的一面。使用SQL Server Service Broker在.NET應用程序之間進行消息傳遞
但是,消費者應用程序需要從隊列中加載消息,進行一些處理,然後確認處理進行得很順利。處理可能會失敗,在這種情況下,我需要重試消息。我還需要保留爲歷史目的而處理的所有消息。
據我所知,當我進行RECEIVE時,消息從隊列中被刪除。那麼消費者應用程序在失敗的情況下應該做什麼?再次將消息推入隊列?我可以將郵件標記爲「正在處理中」,然後在我的任務成功完成後將其刪除?
我該如何使用Service Broker對此進行建模?
Service Broker是一件好事 - 如果您需要在SQL Server內部或之間進行消息傳遞。對於兩個.NET應用程序之間的通信,我會看看WCF而不是SQL Server Service Broker ... –
我需要一個持久的異步隊列。如果其中一個或兩個應用程序死亡,排隊的項目不會丟失。 WCF中有什麼可以給我的嗎? (不幸的是)MSMQ或其他分佈式消息隊列目前不適用於此項目。 – driis
爲什麼MSMQ不是一個選項?它在那裏,它與每個Windows服務器都是免費的,它與WCF很好地集成在一起......它將完美適合您的需求,我相信... –