我正在将应用程序从 c# 移动到 node.js。我是一个 node.js 新手,来自 .net 背景。我希望将领域驱动的设计模式合并到应用程序中。这让我想到了有界上下文和微服务的概念。我想使用 aws 作为我的云提供商,但在确定应该使用哪个工具来处理命令和事件处理时遇到问题?Azure 的服务总线似乎对此非常有效。
是否有等效于 aws 的服务总线,或者我应该只使用 SQS?
我正在将应用程序从 c# 移动到 node.js。我是一个 node.js 新手,来自 .net 背景。我希望将领域驱动的设计模式合并到应用程序中。这让我想到了有界上下文和微服务的概念。我想使用 aws 作为我的云提供商,但在确定应该使用哪个工具来处理命令和事件处理时遇到问题?Azure 的服务总线似乎对此非常有效。
是否有等效于 aws 的服务总线,或者我应该只使用 SQS?
没有直接等效于 Azure 服务总线,但可以通过组合 SQS 和 SNS 来代替。让我们来看看。Azure 服务总线由两部分组成:
2018-01-09 更新:SQS 现在允许创建 FIFO 队列。(请参阅https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html)
2018-08-01 更新:2017 年 11 月 28 日,亚马逊推出了 Amazon MQ,它是亚马逊云中的 Apache Active MQ。Amazon MQ 既有队列又有主题(用于发布/订阅使用模型),因此它可以被视为 Azure 服务总线的全功能替代品。
2019 年 7 月更新:亚马逊推出了 EventBridge 服务总线服务,该服务支持自定义应用程序的事件驱动架构,以及与其平台上托管的 AWS 服务和其他 SaaS 的集成,请参阅https://aws.amazon.com/about-aws/最新消息/2019/07/introducing-amazon-eventbridge/
如果 SQS 满足您的需求,那么它与平台很好地集成:
Amazon Simple Queue Service (SQS) 是一种快速、可靠、可扩展、完全托管的消息队列服务。Amazon SQS 使分离云应用程序的组件变得简单且经济高效。您可以使用 Amazon SQS 传输任意数量的数据,而不会丢失消息或要求其他服务始终可用。Amazon SQS 包括具有高吞吐量和至少一次处理的标准队列,以及提供 FIFO(先进先出)交付和精确一次处理的 FIFO 队列。
此外,市场上有企业服务总线 (HVM),但它似乎只是 Windows 的东西。
但是您不必只使用直接集成到您的托管服务提供商平台的解决方案。您可以在 AWS 上运行任何东西。例如,您可以使用 Redis、RabbitMQ、ZeroMQ、ActiveMQ、NSQ 等工具。
看:
在这里找到更多项目和服务: