本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊SQS队列类型
Amazon SQS 支持两种类型的队列—— 标准队列和FIFO队列。使用下表中的信息选择适合您情况的队列。要了解有关 Amazon SQS 队列的更多信息,请参阅Amazon SQS 标准队列和亚马逊SQSFIFO队列。
标准队列 | FIFO队列 |
---|---|
无限吞吐量 — 标准队列支持每个操作(、或 At-least-once 传@@ 送 — 有保证的传 at-least-once送,这意味着每条消息至少传送一次,但在某些情况下,由于重试或网络延迟,一条消息可能会多次传送。在设计应用程序时,应使用等性操作来处理潜在的重复消息,这样可以确保多次处理同一条消息不会影响系统的状态。 尽力而为订购 — 提供尽力而为的订购,这意味着虽然亚马逊SQS尝试按照发送顺序发送消息,但它不能保证这一点。在某些情况下,消息可能会乱序到达,尤其是在高吞吐量或故障恢复的情况下。对于消息处理顺序至关重要的应用程序,您应该在应用程序中处理重新排序逻辑,或者使用FIFO队列来保证严格的排序。 耐久性和冗余 — 标准队列通过在多个 AWS 可用区存储每条消息的多个副本来确保高耐久性。这样可以确保即使在基础设施出现故障的情况下,消息也不会丢失。 可见性超时 — Amazon SQS 允许您配置可见性超时以控制消息在收到后隐藏多长时间,从而确保其他消费者在消息得到完全处理或超时到期之前不会处理该消息。 |
高吞吐量-使用批处理时,FIFO队列每种API方法( 精确处理一次 — FIFO 队列将每封邮件传送一次,并在您处理和删除邮件之前保持可用状态。通过使用基于内容的重复数据删除等功能,即使由于网络问题 First-in-first-out 传送 — FIFO 队列可确保您按照每个消息组中的发送顺序接收邮件。通过将消息分发到多个群组中,您可以并行处理这些消息,同时仍保持每个群组内的顺序。 |
|
|
当吞吐量至关重要时,使用标准队列在应用程序之间发送数据,例如:
|
当事件顺序很重要时,使用FIFO队列在应用程序之间发送数据,例如:
|