Azure Service Bus在AWS中的等价物是什么?

28
我正在将一个应用程序从c#迁移到node.js。我是一个node.js新手,来自.net背景。我希望将领域驱动设计模式融入应用程序的开发中,这使我接触到了有关有界上下文和微服务的概念。我想使用aws作为我的云提供商,但我遇到了一个问题,就是确定我应该使用哪个工具来处理命令和事件处理?Azure有服务总线,这似乎很适合此类操作。是否有与服务总线相当的AWS工具,或者我应该选择使用SQS?
3个回答

52

虽然没有Azure Service Bus的直接替代品,但可以通过结合SQS和SNS来实现替代。让我们来看一下。Azure Service Bus由两部分组成:

  1. 队列。在大多数情况下,SQS(简单队列服务)将提供一个足够的替代品,但请注意,Azure Service Bus队列是先进先出(FIFO),而SQS队列不能保证消息的顺序。

更新于2018-01-09:现在SQS允许创建FIFO队列。(参见 https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html

  1. 主题和订阅。这用于发布/订阅事件驱动设计中,当您需要将同一消息传递给多个消费者时。SQS不能做到这一点,但SNS(简单通知服务)恰好是这种类型的服务。

更新于2018-08-01:在2017年11月28日,亚马逊推出了Amazon MQ,它是Amazon云中的Apache Active MQ。Amazon MQ具有队列和主题(发布/订阅使用模型),因此可以看作是Azure Service Bus的全功能替代品。


我需要为我的移动应用程序替换Azure Service Bus,该应用程序拥有数千名用户,什么是最适合这种情况的选择?Kinesis、S3还是RDS Aurora? - Muhammad Waqar

14

2
如果 SQS 符合您的需求,则它与平台集成得很好: Amazon Simple Queue Service(SQS)是一项快速、可靠、可扩展的完全托管的消息队列服务。Amazon SQS使得云应用程序的组件分离变得简单和经济。您可以使用Amazon SQS传输任何数量的数据,而不会丢失消息或要求其他服务始终可用。Amazon SQS包括具有高吞吐量和至少一次处理的标准队列,以及提供FIFO(先进先出)交付和精确一次处理的FIFO队列。

此外,市场上还有企业服务总线(HVM),但似乎只适用于Windows。

但您不必仅使用直接集成到托管提供商平台的解决方案。您可以在AWS上运行任何东西。例如,您可以使用Redis、RabbitMQ、ZeroMQ、ActiveMQ、NSQ等工具。

请参见:


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