适用于AWS的Azure Service Bus等效项

时间:2016-12-28 17:33:03

标签: node.js amazon-web-services event-driven-design

我正在将应用程序从c#移动到node.js.我是一个来自.net背景的node.js新手。我希望将域驱动的设计模式合并到应用程序中。发展使我有了有限的背景和微观服务的概念。我想使用aws作为我的云提供商,但在确定应该使用哪个工具来处理命令和事件处理时遇到问题? Azure有服务总线,似乎对此非常有用。

是否有相当于aws的服务总线,或者我应该只使用SQS?

3 个答案:

答案 0 :(得分:14)

没有直接等效于Azure Service Bus,但可以通过组合SQS和SNS来替换它。让我们来看看。 Azure Service Bus由两部分组成:

  1. 队列即可。在大多数情况下,SQS(简单队列服务)将提供足够的替换,但请记住,Azure Service Bus队列是先进先出(FIFO),而SQS队列不保证消息的顺序。
  2. 更新2018-01-09:SQS现在允许创建FIFO队列。 (见https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html

    1. 主题和订阅。当您需要向几个消费者提供相同的消息时,这将在PubSub(发布/订阅)事件驱动设计中使用。 SQS不能这样做,但SNS(简单通知服务)正是这种类型的服务。
    2. 更新2018-08-01:2017年11月28日亚马逊introduced Amazon MQ,这是亚马逊云中的Apache Active MQ。 Amazon MQ具有队列和主题(用于发布/订阅使用模型),因此可以将其视为Azure Service Bus的全功能替代品。

答案 1 :(得分:1)

如果SQS符合您的需求,那么它与平台很好地集成在一起:

  

Amazon Simple Queue Service(SQS)是一种快速,可靠,可扩展,完全托管的消息队列服务。 Amazon SQS使解耦云应用程序的组件变得简单且经济高效。您可以使用Amazon SQS传输任意数量的数据,而不会丢失消息或要求其他服务始终可用。 Amazon SQS包括具有高吞吐量和至少一次处理的标准队列,以及提供FIFO(先进先出)传输和一次性处理的FIFO队列。

此外,市场上还有企业服务总线(HVM),但它似乎只是Windows的一部分。

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

请参阅:

在此处查找更多更多项目和服务:

答案 2 :(得分:1)

2019年7月更新:亚马逊推出了EventBridge服务总线服务,该服务总线支持自定义应用程序的事件驱动架构,以及与平台上托管的AWS服务和其他SaaS的集成,请参阅{{3} }