SQS-按ID获取消息

A23*_*A23 5 amazon-sqs

我是否可以使用Amazon PHP SDK根据消息ID从SQS队列中获取消息?我是否只需要获取队列中的所有消息,然后在服务器上对其进行过滤?

我的服务器收到一个带有队列消息ID的SNS发起的请求,我不得不从SQS的一系列消息中过滤出该消息。

Kee*_*asa 6

队列的目的是在某个处理任务之前将其用作缓冲区来存储消息。这不应与存储服务或数据库服务混淆。Amazon SQS 允许进程从队列(缓冲区)中检索消息并根据需要处理它们。如果需要StandardFIFO可以使用队列。

回答您的问题:SQS 不提供通过Message ID. 因此,正如您所建议的,您可以让单独的工作人员并行检索所有消息并查找具有所需 ID 的消息。(这可能是详尽无遗的)

由于您的用例类似于存储服务的用例,我建议写入存储服务并根据名为“消息 ID”的列从中检索。


A23*_*A23 2

只是为了它可以帮助别人。我找不到直接的方法来做到这一点。相反,实现另一组队列工作人员来委派任务解决了性能问题。这些工人只执行两项任务

  1. 检索队列项目
  2. 关联有效id
  3. 将其发送到处理服务器(在执行负载检查、可用性等之后)