前言
這篇文章是出自於線上課程 Ultimate AWS Certified Solutions Architect Associate 的所記錄的筆記。
本文
在設計 APP 的架構時,若以同步處理的方式進行,在同一時間處理大流量可能會發生問題,因此要藉由 解耦 的方式,解耦的方式可以分成
- SQS - Queue
- SNS - Pub/Sub
- Kinesis - Streaming
SQS
Queue 的訊息順序可能會不固定,訊息可能會重複
Standard Queue
- 流量無限制
- 訊息保留時間: 4~14 天
- 低延遲
- 每則訊息上限 256 KB
Access Policy
可以設定 Policy 讓特定使用者才可以使用 SQS
Message Visibility Timeout
避免其他 Consumer 消耗同一個訊息,當訊息被使用時,訊息的狀態會變更為 invisibility,這段時間預設為30秒
Dead Letter Queue
當訊息失敗的次數超過指定的次數,訊息會被派送到 Dead Letter Queue (DLQ) - 更一步 Debug
Delay Queue
訊息在特定的時間過後才能被使用,預設是 0 秒
Long Polling
持續撈取訊息儘管佇列為空,這麼做的好處是減少呼叫 API 的次數
FIFO
First In First Out - 訊息會按照訊息被處理,因此有吞吐量限制,而且也不會有重複的問題發生
SNS
定義 Pub / Sub,進一步達成一個訊息送往多個目標,與 SQS 組合成一個 Fan Out Pattern
Kenesis
負責 搜集、處理、分析 即時串流資料
Reference
- Ultimate AWS Certified Solutions Architect Associate 2021