Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 跟踪SQS队列中的消息_Amazon Web Services_Boto_Amazon Sqs - Fatal编程技术网

Amazon web services 跟踪SQS队列中的消息

Amazon web services 跟踪SQS队列中的消息,amazon-web-services,boto,amazon-sqs,Amazon Web Services,Boto,Amazon Sqs,我有一个请求队列和一个响应队列。我想将消息从请求队列中取出并放入响应队列。我希望能够识别从请求队列中取出的相同消息是否已放入响应队列中 我在GAE上使用Boto 首先,我假设消息id是常量。因此,我从请求队列中读取消息,将相同的消息对象添加到响应队列中,并查询id-SQS是否生成了新的消息对象 其次,我的消息体是一个json对象,因此我添加了一个自定义字段“messageId”,并生成了我自己的id以与队列一起存储。但后来我发现,每次从队列中读取10条消息是有限制的。此外,由于SQS的分布式特性

我有一个请求队列和一个响应队列。我想将消息从请求队列中取出并放入响应队列。我希望能够识别从请求队列中取出的相同消息是否已放入响应队列中

我在GAE上使用Boto

首先,我假设消息id是常量。因此,我从请求队列中读取消息,将相同的消息对象添加到响应队列中,并查询id-SQS是否生成了新的消息对象


其次,我的消息体是一个json对象,因此我添加了一个自定义字段“messageId”,并生成了我自己的id以与队列一起存储。但后来我发现,每次从队列中读取10条消息是有限制的。此外,由于SQS的分布式特性,不保证会返回消息。

您的消息将被传递,只是不一定是在任何给定的获取请求上,因为您将与后端服务器的随机子集交谈。在SQS中没有办法说,“我知道有3条消息给我,现在就给我。”你能做的最好的事情就是投票,直到你最终收到它们。SQS非常简洁,但它不是所有东西的正确选择,如果您想要延迟更少、可预测性更强、消息有序的东西,请查看RabbitMQ。Rabbit的唯一问题是缩放,这是您的问题。

消息ID由SQS生成,您无法控制它们是什么,因此在消息正文中使用您自己的ID听起来是正确的。我不明白为什么一次读10条信息是个问题。你能再解释一下吗?此外,SQS不能保证消息的传递也是不正确的。它确实保证交货,但不保留订单。