【问题标题】:AWS SQS subscribed to SNS topic high latencyAWS SQS 订阅 SNS 主题高延迟
【发布时间】:2021-11-25 13:56:00
【问题描述】:

我有几个使用 RabbitMQ 作为消息代理的 .Net 5.0 微服务。现在我正在切换到 AWS SQS。很少有服务正在监听相同的消息(这是通过 RabbitMQ 中的 Exchange 完成的)。在 AWS 中,这可以通过将 SQS 队列订阅到 SNS 主题来实现。我创建了 SNS fifo 主题和 SQS fifo 队列,将这些队列订阅到主题。当我将消息直接发布到队列时,一切都会立即运行,但是当我将消息发布到 SNS 主题时,需要 7 分钟以上才能从订阅主题的队列中获取消息。有没有人注意到如此巨大的延迟?也许是延迟? 顺便说一句,所有服务都在同一区域的 aws 上运行。 有任何想法吗 ?将不胜感激任何建议!

【问题讨论】:

  • 你如何衡量这个延迟?您确定这是第一次处理消息吗?可能出了点问题,它被重新发送,而您只看到最新的时间戳。
  • 感谢@Maurice 的留言!用定时器测量。一种侦听器服务非常简单,只需接收消息并将其存储在数据库中即可。日志级别是信息,所以我看到了所有日志,并且我确信消息处理没有错误。
  • 典型的延迟通常以几十毫秒为单位,而不是秒。更短的时间。
  • @DavidBrabant 可以交付延迟参数导致此暂停吗?
  • 通常您根本不会设置交付延迟,或者如果您关心这种延迟,请将其设置为0。该设置告诉亚马逊“我想将此消息存储在队列中,但要等到稍后再进行处理”

标签: c# .net amazon-web-services amazon-sqs amazon-sns


【解决方案1】:

感谢大家的 cmets 和帮助!就我而言,缺乏 sqs 经验是主要问题。我在队列设置“Delivery delay”中找到参数并设置较小的值,现在我立即收到消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 2021-03-25
    • 2021-06-24
    • 1970-01-01
    • 2015-09-26
    • 2020-08-08
    • 2019-04-11
    • 1970-01-01
    相关资源
    最近更新 更多