在Redis上选择RabbitMQ作为ServiceStack MQ Broker是否有任何权衡取舍?

时间:2014-10-02 17:10:30

标签: servicestack servicestack.redis

我正处于设计系统的最初阶段,该系统将基于队列,并希望听到与其中一个或另一个作为消息的后备存储的优缺点。

流程粗糙:

ServiceStack外部Web服务将接收HTTP消息并立即将这些DTO发送到持久消息队列。我可以设想这个特定的队列/主题是PubSub,因为我有许多其他可能想要通知的进程,一个是出于历史原因存储消息的过程,另一个是对消息本身进行操作并执行一些操作...列表订阅者/客户端继续。

除了我对ServiceStack和基于持久队列的消息传递的非常有限的经验之外,还有什么阻止我实现这些方面的东西吗?

到目前为止我的阅读内容包括这些文章:

Redis Persistence

Redis persistence demystified

ServiceStack - Messaging and Redis

ServiceStack - SMessageService

ServiceStack - RedisMqServerTest

谢谢你, 斯蒂芬

1 个答案:

答案 0 :(得分:1)

Redis MQ中没有任何功能不在Rabbit MQ中,Rabbit MQ Server确实存在的一个限制是,失败消息的RetryCount只能是{{1}或0(在Redis MQ中它可以是任何数字)。

主要的权衡是它需要一个Rabbit MQ Broker,它是已经运行Redis的环境的附加基础设施依赖项。 Rabbit MQ对Redis MQ的一个功能是 Ack 支持,只有在客户端上明确确认消息时,才会从代理中删除消息:

1