首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS SQS FIFO队列:无法在一次运行中使用循环发送消息

AWS SQS FIFO队列:无法在一次运行中使用循环发送消息
EN

Stack Overflow用户
提问于 2019-09-03 06:58:22
回答 2查看 1.1K关注 0票数 0

我正在使用AWS SQS服务,目前正在尝试在队列中插入消息,并且我能够成功地插入第一条消息,但不能使用循环插入第二条消息.它返回相同的消息id和序列号。

MessageId:‘*-A 938-4fdc-abed-2 efb1e302a2a’,SequenceNumber:‘18848*2174575616’

以下是我正在使用的代码,有人能帮助我吗?

代码语言:javascript
复制
function insertMessage(data){
    var sqs = new AWS.SQS({apiVersion: '2012-11-05'});

        var params = {

           MessageGroupId:data.messageGroupId,
           MessageAttributes: {
                "operation": {
                    DataType: "String",
                    StringValue: "insert_comment"
                },
                "comment_id": {
                    DataType: "Number",
                    StringValue: ""+data.comment_id+""
                },
                "timestamp": {
                    DataType: "String",
                    StringValue: ""+data.created_on+""
                }
            },
            MessageBody: "New comment send ",

            QueueUrl: "******"
        };
        //console.log(params);
        sqs.sendMessage(params, function (err, data) {
            if (err) {
                console.log("Error", err);
                callback(err);
            } else {
                console.log("Success", data.MessageId);
                callback(data);
            }
        });
}

我正在循环调用上面的函数。

每次我在回调中得到相同的MessageId和SequenceNumber响应。

代码语言:javascript
复制
{ ResponseMetadata: { RequestId: '762a88d4-****-5298-***-dd3cb27f7dc1' },
  MD5OfMessageBody: '33d9f3a9*****bad5f72014ea836062',
  MD5OfMessageAttributes: '*****af0c13771494a53fdb2',
  MessageId: '*****-****-4fdc-abed-2efb1e302a2a',
  SequenceNumber: '188******174575616'

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-04 09:07:50

显然,您没有添加MessageDeduplicationId属性,这表明启用了基于内容的复制。在这种情况下,将根据消息正文内容哈希自动为您生成MessageDeduplicationId。在这里,5分钟的重复间隔适用。如果要将消息添加到具有相同消息体的队列中,并在重复间隔内添加消息,则需要为每条消息生成唯一的MessageDeduplicationId

参考文献

如果多条消息相继发送到一个FIFO队列,每个队列都有一个不同的消息删除ID,则Amazon存储消息并确认传输。然后,可以按照发送消息的确切顺序接收和处理每条消息。

MessageDeduplicationId

用于删除发送的消息的标记。如果具有特定消息去重复ID的消息被成功发送,使用相同消息去重复ID发送的任何消息都会被成功地接受,但不会在5分钟的去重复间隔内传递。

去重叠配置

启用基于内容的去重复。这指示Amazon使用SHA-256散列来使用消息主体生成消息去重复ID,而不是使用消息的属性。

票数 4
EN

Stack Overflow用户

发布于 2019-09-03 08:24:39

第二条信息与第一条相同吗?不能将重复的消息放入FIFO队列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57766473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档