企业应用中的Azure Service Bus与RabbitMQ相比如何?

43

我需要在Azure Service Bus和RabbitMQ(部署在Azure上)之间做出选择,用于企业级应用程序,我的主要使用将是主题(具有持久性存储)。 我发现与RabbitMQ相比,服务总线具有更多功能,如重试计数、TTL、会话和事务等。 但我不确定哪一个最适合高可用性、可扩展性、存储和吞吐量。 服务总线在存储大小方面有一些限制(非分区队列最大为5 GB,分区队列最大为80 GB),并且每秒/队列的吞吐量为2000个消息。 如果我需要超过这些限制怎么办?

RabbitMQ的限制并不清楚,因为它取决于集群。 如果有人可以帮助我决定哪一个对我来说是最好的?


1
我发现了一篇关于Azure VM上Azure Service Bus和RabbitMQ成本比较的博客,你可以在这里参考它:http://www.mariuszwojcik.com/blog/Cost-comparison-between-Azure-Service-Bus-Queues-and-RabbitMQ。 - Bruce Chen
1
我看到了@Bruce-MSFT。成本不是问题。我对服务总线的性能和可伸缩性感到困惑。 - Muhammad Faizan
为什么不考虑使用可以横向扩展的Amazon SQS呢?您可以将SQS连接到SNS并将其用作您的案例主题。 - gdenuf
2
我一直是RMQ的用户。我刚开始使用AMB,对其性能并不是特别印象深刻。但公平地说,我还没有给AMB足够的时间进行比较。我找到了这篇关于AMB性能的文章。 https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements - code5
5
如果你的其他基础设施严重依赖于Azure,我建议使用Azure SB。 如果你计划(任何可能性)离开Azure,可以使用RabbitMQ。 - Greatran
显示剩余2条评论
1个回答

25
我的看法是- 在你的应用基础设施中使用RabbitMQ和Docker以及Kubernetes可以实现可移植性,也就是说,你可以更轻松地将应用迁移到不同的云提供商,而不是使用Azure消息总线。

26
这并不是一个直接的比较。企业不经常更改云服务。问题与答案不相符。 - Vinayak Mishra
实际上,您可以使用Azure Service Bus并仍然具有可移植性。可移植性可以来自配置。使用像Terraform这样的IaC工具可以使您能够替换基础服务。 - Daniel Kusy
1
使用像NServiceBus或MassTransit这样支持RabbitMQ和Azure Service Bus(以及其他选择)的消息框架,将为您提供非常好的“可移植性”,以及在没有基础代理的情况下对系统的各个部分进行单元测试的能力:https://docs.particular.net/transports/rabbitmq/ https://docs.particular.net/transports/azure-service-bus/ - Udi Dahan
误导性信息 - Azure 服务总线不仅限于 Azure 平台 - 它可以从本地数据中心或其他云服务提供商中使用。 - Greg Bala
@GregBala - 有意思,你有没有任何文档可以解释如何在本地运行Azure Service Bus? - undefined
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接