【问题标题】:Is it possible to integrate AWS SNS and AWS SQS FIFO queue是否可以集成 AWS SNS 和 AWS SQS FIFO 队列
【发布时间】:2016-12-29 23:48:50
【问题描述】:

使用introduction of FIFO queues in SQS,我们可以保证 SQS 消息将按顺序传递。

现在,当我通过 SNS 发布消息时,是否会出现乱序传递?以下是我认为可能发生的情况:

 _____                       _____                       __________
| App |-- Publish msg 1 --> | SNS | --> Queue msg 2 --> | FIFO SQS | --> Consume 2
|     |-- Publish msg 2 --> |     | --> Queue msg 1 --> |          | --> Consume 1
 -----                       -----                       ----------

这种情况可能吗?

【问题讨论】:

标签: amazon-web-services amazon-sqs amazon-sns


【解决方案1】:

这种情况目前是不可能的,因为 SNS 与 AWS 中的 FIFO SQS 不兼容。它仅支持标准队列。这在 this link 的 AWS 文档中明确提到,在特别说明下。

编辑

它也列在SNS FAQsAre Amazon SQS FIFO queues compatible with Amazon Simple Notification Service (SNS)?

答案与 2020 年 7 月 26 日相同:Amazon SNS does not currently support forwarding messages to Amazon SQS FIFO queues. You can use SNS to forward messages to standard queues.

【讨论】:

  • 链接在哪里
  • 链接已添加。很抱歉给您带来不便
  • 有进展吗?我想 AWS 正在努力实现这个功能?我如何以及在哪里可以跟踪?
  • @G.Mast AWS 仍然不支持这一点。请注意,当前不支持 FIFO 队列。想知道是否有人已经与他们解决了这个问题。如果有人想要,他们可以通过开发者论坛请求功能:forums.aws.amazon.com/forum.jspa?forumID=4
【解决方案2】:

【讨论】:

  • 所以答案仍然是否定的。您可以将 SQS FIFO 队列订阅到 SNS FIFO 主题。仍然无法为 SNS 主题订阅 SQS FIFO 队列。
  • @villasv 为什么要使用 FIFO 队列(保证有序)订阅 SNS 主题(不保证有序)。 SNS FIFO 主题具有不同的架构、限制和定价,修复这两个是没有意义的。如果您的系统有严格的排序用例,只需使用 FIFO 主题。
  • 因为 SQS FIFO 队列具有基于内容的重复数据删除,即使交付顺序并不重要,也选择了它。好决定?也许不是,但这是一个不同的讨论。 OP 不是在问这是否是一个好的架构,他是在问这是否可能。 “只使用 FIFO 主题”不是一个有用的答案。
【解决方案3】:

最新的 SNS 支持 FIFO 是可能的,

根据亚马逊文档的摘录

FIFO 主题支持将消息扇出到多个订阅 具有高耐用性、过滤、加密和隐私,同时 FIFO 主题提供了排序和重复数据删除的额外好处 留言

我列出了一些重要的链接供你参考

  1. Amazon SNS introduces First-in-First-out (FIFO) topics with strict ordering and deduplication of messages
  2. Introducing Amazon SNS FIFO – First-In-First-Out Pub/Sub Messaging
  3. Building event-driven architectures with Amazon SNS FIFO

因为您的 SNS 主题协议终端节点是 Amazon SQS,它可以完美运行。

其他协议端点的注意事项 Ref

  • 目前,终端节点协议必须是 Amazon SQS,以 Amazon SQS FIFO 队列的 Amazon 资源名称 (ARN) 作为终端节点。
  • SNS FIFO 主题无法将消息传递到客户管理的端点,例如电子邮件地址、移动应用程序、电话号码 短信 (SMS) 或 HTTP(S) 端点。这些端点类型 不能保证保持严格的消息顺序。尝试去 将客户管理的端点订阅到 SNS FIFO 主题导致 错误。

【讨论】:

    【解决方案4】:

    我的团队也在寻找 SNS 与 SQS FIFO 队列的集成,但遗憾的是它直到现在还不兼容。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多