【发布时间】:2018-03-07 03:43:44
【问题描述】:
我正在考虑使用 SNS-SQS 服务向运行相同服务的机器提供更新。由于该计划不是让机器相互通信,因此我计划为每台机器创建一个 SQS(SQS 将在启动时创建)。
但是,我不确定在这种情况下如何使用死信队列 (DLQ)。每个 SQS 是否应该有自己的 DLQ,或者我可以拥有一个在该区域的 SQS 之间共享的通用 DLQ?我对前一种方法的担忧是会创建太多队列(2x 机器),而后一种方法的担忧是队列中可能存在同一消息的多个副本。
使用多个 SQS 队列时,最佳做法和推荐方法是什么?
【问题讨论】:
-
为什么要使用多个队列?为什么不只使用一个队列并让所有机器从该队列中拉出? SQS 提供消息可见性功能,因此您最终不会遇到重复处理。
-
多个队列,以便将消息复制到所有机器,而不必相互交谈。
-
啊,所以您希望每台机器处理所有消息。我建议将 Kinesis 视为比 SQS 更适合该用例 - 将模型视为每个工作人员按照自己的节奏读取的单个数据“流”。
标签: amazon-web-services amazon-sqs