我有一个请求队列和一个响应队列。我想将消息从请求队列中取出并将其放入响应队列中。我希望能够识别出从请求队列中取出的相同消息已被放入响应队列。
我在GAE上使用Boto。
首先,我假设消息id是不变的。所以我从请求队列中读取消息,将相同的消息对象添加到响应队列并查询id - SQS生成了一个新的。
其次,我的消息正文是一个json对象,所以我添加了一个自定义字段'messageId'并生成了我自己的id以与队列一起存储。但后来我发现从队列中一次读取10条消息是有限制的。此外,由于SQS的分布式特性,无法保证将返回消息。
答案 0 :(得分:2)
您的消息将被传递,而不一定是在任何给定的请求中,因为您将与后端服务器的随机子集通话。在SQS中没有办法说,“我知道有三条消息给我,现在就把它给我。”您可以做的最好的事情是投票,直到您最终收到它们。 SQS非常简洁,但它不是一切的正确选择,如果你想要一些延迟更少,更具可预测性和有序消息的东西,可以看看RabbitMQ。只有Rabbit的问题现在是规模是你的问题。