【问题标题】:Amazon AWS SQS FIFO queue sendMessage issueAmazon AWS SQS FIFO 队列 sendMessage 问题
【发布时间】:2018-04-05 04:59:22
【问题描述】:

当使用带有MessageDeduplicationIdsendMessage() 函数发送消息以防止重复时。 但是,sendMessage 函数总是返回 true。换句话说,sendMessage 函数总是返回一个值,表示消息已成功发送到 SQS,但该消息实际上不可用。

我根据sendMessage() 返回值更改数据库中的字段“sent_to_sqs”。

谁能帮帮我?

【问题讨论】:

    标签: amazon-web-services amazon-sqs fifo redundancy


    【解决方案1】:

    设计假设是,如果您发送的消息具有相同的 deduplication-id,那么这就是您已经发送的完全相同的消息(否则,它不应该具有相同的 deduplication-id),因此 SQS 会假装接受它再次假设您一定是出了问题,从而使您无法意识到该消息已在第一次提交。

    sendMessage 函数总是返回一个值,表示消息已成功发送到 SQS”

    是的,因为它早已经是了。

    SQS 不会验证消息是否实际上是重复的 - 它假定它是重复的,因为您已通过在 5 分钟窗口内提交相同的重复数据删除 ID 来声明它必须是重复的.如果消息已被处理,则按照设计,它在队列中将不可用。

    邮件重复数据删除 ID

    用于对已发送消息进行重复数据删除的令牌。如果成功发送具有特定消息重复数据删除 ID 的消息,则任何使用相同消息重复数据删除 ID 发送的消息都会被成功接受,但不会在 5 分钟重复数据删除间隔内传递。

    https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多