繁体   English   中英

Amazon Message Queue Service(SQS)发送和确认

[英]Amazon Message Queue Service (SQS) sending and confirmation

场景:

弹性beantalk环境具有一些Web服务器,这些服务器将请求发送到另一个工作环境以进行用户注册等。

问题:

当其中一台工作机完成任务后,我还希望它将确认发送到Web服务器。

SQS似乎没有“确认”消息。

当我们卸载工作以发送电子邮件时,但我也想让Web服务器知道发送电子邮件是成功的。

我可以做的一个解决方案是实现Web服务器轮询的另一个队列,但是,许多服务器可以在同一队列上轮询,并且Server 2可以接收对Server 1的确认,因此我们需要等待超时消息,但是服务器3可能会截获该消息。 服务器1可能需要等待一段时间才能获得确认。

工作人员计算机“确认”他们处理消息的方式是从队列中删除它。 队列消息的生命周期为:

  1. Web服务器发送带有请求的消息。
  2. 工作者收到消息。
  3. 工作者成功处理消息。
  4. 工作者删除消息。

正在删除的消息是对消息已成功处理的确认。

如果工作程序未在步骤4中删除该消息,则该消息将在指定的超时后重新出现在队列中,并且下一个要检查消息的工作程序将获取并处理该消息。

如果您担心一条消息可能无法处理并永远永远出现在队列中,则可以设置“死信”队列。 在收到指定次数但从未删除的消息之后,该消息将被转移到死信队列中,您可以在其中处理这些异常情况。

Amazon的《 Simple Queue Service 开发人员指南》对此生命周期以及如何确保将每条消息都进行处理或移入死信队列以进行特殊处理提供了很好的清晰说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM