Byte Ebi's Logo

Byte Ebi 🍤

每天一小口,蝦米變鯨魚

[大話 AWS 雲端架構筆記] SQS

簡介 SQS 和使用方法和運作機制

Ray

Amazon Simple Queue Service 作為任務暫存器,不需要及時處理的任務可以丟進去存放
等系統有多餘的資源時再進行處理,可以解耦應用程式

graph LR;
消息產生-->消息存放-->消息取用;

Amazon SQS 不會自動刪除訊息,且不保證消費者會實際接收到訊息

名詞解釋

Producer

負責將使用者需求轉換成 Message,並轉送至 Queue

Message

在服務間傳遞的任務資訊

預設最大值256KB
大型檔案建議存放到 S3,Message 則紀錄檔案位置

Queue

存放待處理任務的訊息佇列,提供給 Consumer 取用

放到 Queue 裡的 Message 都有保留時間,時間一到就會被 SQS 刪除
預設保留時間為 4 天,可用範圍為 60 秒~1209600 秒 ( 14 天)

Consumer

從佇列中取出 Message 並按照內容進行任務處理

類型

Amazon SQS 佇列類型

Consumer 對 Queue 中的 Message 處理順序分為兩種

  1. Standard:散落不考慮順序
  2. FIFO:先進先出(First in first out)

消息可見性

避免任務重複處理以及設定 timeout 時間

Invisibility

當第一個 Consumer 拉取 Message 後,Message 就會進入 Invisibility 狀態
將 Message 暫時隱藏就不會被其他 Consumer 重複拉取

而在處理完 Message 後需要發送Delete Message來避免重複處理

Visibility Timeout

當一個 Consumer 在接收某個 message 時
其他 Consumer 會有一段時間看不到該 message

當任務沒有在 timeout 時間內被處理完
在 timeout 後其他 Consumer 又可以看到這則 message,並開始處理
這代表一則訊息有可能會被傳送多次

Visibility Timeout 預設為 30 秒,下限為 0 秒,上限為 12 小時

拉取頻率

Amazon SQS 短和長輪詢

  • Short polling:頻繁存取,預設情境
  • Long polling:存取頻率較低,成本較少

最新文章

Category

Tag