Understand SQS¶
Keywords: AWS SQS, Simple Queue Service, Message Queue
SQS 是消息队列系统. 主要用于消息可靠抵达和可靠处理. 常用于非即时性的, 可稍后处理但是必须处理的工作. 实现方式是长轮询, 也就是一段时间收一批信息, 并处理一批.
消息队列可以说是最重要的几个软件中间件之一. 常用于平滑请求, 连接多个系统.
Concept¶
Queue Attributes - Default Visibility Timeout¶
The length of time (in seconds) that a message received from a queue will be invisible to other receiving components.
如果信息被 receiver 所接收, 那么在一定时间内其他 receiver 无法看到这条信息. 如果所接收的 receiver 没有删除他, 那么在一段时间后这条消息会再次被接收.
Queue Attributes - Message Retention Period¶
The amount of time that Amazon SQS will retain a message if it does not get deleted.
信息在 SQS 中最多被保留多长时间? 0 - 4 days
Queue Attributes - Delivery Delay¶
The amount of time to delay the first delivery of all messages added to this queue.
信息到达 SQS 后在多长时间内是不可见的.
Queue Attributes - Receive Message Wait Time¶
The maximum amount of time that a long polling receive call will wait for a message to become available before returning an empty response. 0 - 20 sec.
每次长轮询时在返回空结果之前等待多久.
Dead Letter Queue Settings - Use Redrive Policy¶
Send messages into a dead letter queue after exceeding the Maximum Receives.
一条消息被接受了 N 次之后, 仍然没有被删除, 则转发到 Dead Letter Queue 中.
Dead Letter Queue Settings - Maximum Receives¶
The maximum number of times a message can be received before it is sent to the Dead Letter Queue.
Pricing¶
Reference: https://aws.amazon.com/sqs/pricing/
Price per 1 Million Requests:
Standard Queue: $0.40
FIFO Queue: $0.50
Data Transfer OUT: 1GB - 9.999 TB / Month, $0.09 per GB
Limit¶
Reference: https://aws.amazon.com/sqs/faqs/
Only-Once Delivery¶
Standard Queue 不能保证 only-once delivery, 但是 FIFO Queue 可以保证. 所以对于数据库应用, 必须使用 FIFO Queue.