2014-10-02 34 views
0

我正處於設計系統的初始階段,它將基於隊列並希望聽到與其中一個或另一個一起作爲消息的後備存儲的優點和缺點。作爲ServiceStack MQ Broker在Redis上挑選RabbitMQ是否有任何折衷?

過程的粗糙流量:

ServiceStack外部Web服務將接收HTTP消息,並立即發送這些DTO的一個持久消息隊列。我可以想象,這個特定的隊列/主題是PubSub,因爲我有許多其他進程可能需要通知,其中一個將是一個存儲歷史原因的消息的進程,另一個將對消息本身執行並執行一些操作...列表訂戶/客戶繼續。

除了我在ServiceStack和基於持久隊列的消息方面的經驗非常有限之外,是否還有什麼東西阻礙我實現這些目標?

我讀迄今已包括這些文章:

Redis Persistence

Redis persistence demystified

ServiceStack - Messaging and Redis

ServiceStack - SMessageService

ServiceStack - RedisMqServerTest

謝謝 斯蒂芬

回答

1

有沒有Redis MQ不在Rabbit MQ,一個限制兔MQ服務器不具備的是,RetryCount失敗的消息只能是任何功能01(在Redis的MQ它可以是任何數字)。

主要的折衷是它需要一個Rabbit MQ Broker,它是已經運行Redis的環境的附加基礎設施依賴項。該兔MQ擁有Redis的MQ特點是確認支持,其中一個消息只從代理刪除,如果它明確承認在客戶端上:

var responseMsg = mqClient.Get<HelloResponse>(QueueNames<HelloResponse>.In); 
mqClient.Ack(responseMsg);