我需要在Azure Service Bus和RabbitMQ(在Azure上部署)之间为企业级应用程序做出决定,我的主要用途是主题(具有持久存储)。 我发现,与RabbitMQ相比,服务总线具有更多的功能,如Retries Count,TTL,sessions&但我不确定哪一个最适合高可用性,可扩展性,存储和吞吐量。 服务总线对存储大小有一些限制(非分区队列最大为5 GB,分区队列最大为80 GB),吞吐量为2000 msgs / sec / queue。如果在服务总线的情况下我需要更多这些限制怎么办?
RabbitMQ的限制尚不清楚,因为它取决于群集。如果有人能帮我决定哪一个在我的情况下最好?
答案 0 :(得分:3)
然而,很久以前你的问题被问到,我看到人们还在访问。我找到了两个有用的资料来源:
(1)以下是将 Service Bus 与 RabbitMQ 进行比较的全面(虽然陈旧)文章:
http://geekswithblogs.net/michaelstephenson/archive/2012/08/12/150399.aspx
上述()的摘要:
(2)看一下这个答案也可能有所帮助:
https://dba.stackexchange.com/questions/196770/sql-server-service-broker-vs-rabbitmq
我认为当他说:
时,他根据自己的经验提出了一个观点排队后的数据处理是否发生在a 数据库还是外部进程? (a)外部过程 - > RMQ。 (b)另一个数据库 - > SSB。但是,由于它的特质,我可能会 看看创建一个pub-sub SQLCLR程序集。这个集会 将读取表异步的数据,并将其发送给另一个 用于处理的数据库(我们在工作的地方也这样做了。)
您需要SSB提供的双工功能吗?别忘了SSB 并不打算成为消息代理,而是为双工而构建 对话,可能是长寿的。 如果您需要双工功能,那么SSB(几乎)是给定的。
希望这有帮助。
答案 1 :(得分:2)
我的2美分-结合Docker和Kubernetes的RabbitMQ作为应用程序基础结构的一部分,可为您带来可移植性。也就是说,与使用Azure消息总线相比,您可以决定更轻松地将应用程序移动到其他云提供商。