23

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

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

4

3 回答 3

41

没有直接等效于 Azure 服务总线,但可以通过组合 SQS 和 SNS 来代替。让我们来看看。Azure 服务总线由两部分组成:

  1. 队列。在大多数情况下,SQS(简单队列服务)将提供足够的替代,但请记住,Azure 服务总线队列是先进先出 (FIFO),而 SQS 队列不保证消息的顺序。

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

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

2018-08-01 更新:2017 年 11 月 28 日,亚马逊推出了 Amazon MQ,它是亚马逊云中的 Apache Active MQ。Amazon MQ 既有队列又有主题(用于发布/订阅使用模型),因此它可以被视为 Azure 服务总线的全功能替代品。

于 2016-12-28T19:05:18.100 回答
9

2019 年 7 月更新:亚马逊推出了 EventBridge 服务总线服务,该服务支持自定义应用程序的事件驱动架构,以及与其平台上托管的 AWS 服务和其他 SaaS 的集成,请参阅https://aws.amazon.com/about-aws/最新消息/2019/07/introducing-amazon-eventbridge/

于 2019-07-16T11:21:19.733 回答
1

如果 SQS 满足您的需求,那么它与平台很好地集成:

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

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

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

看:

在这里找到更多项目和服务:

于 2016-12-28T17:47:20.827 回答