iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

AWS Certified Solution Architect 系列 第 27

AWS Certified Solution Architect - SQS

Table of Content :

  • Queuing System
  • Simple Queue System Introduction
  • SQS Limits
  • SQS Queue Types
  • SQS Visibility Timeout
  • SQS Short Polling & Long Polling

Queuing System

一種異步溝通的系統,能將傳送者和接收者解偶的方法。

通常提到 Queuing System ,會將 Queuing System 與 Streaming process 做比較

通常 Queueing System:

  • 提供非即時的通知
  • 接收者需要自己去 拉(pull) 通知
  • 通常在使用者接收完,訊息就會從 queue 中刪除
  • Queuing System 舉例 : SQS, Sidekiq, RabbitMQ(有爭議)

而 Streaming process :

  • 提供即時的通知
  • 多位接收者能同時對訊息做出"反應"
  • 通常訊息會在 stream 中存留一段時間,所以可以做出複雜的操作
  • Stream process 舉例 : Kinesis, kafka, NATS

Simple Queue System Introduction

  • SQS 也是 Application Integration 的一種可以在 Application Integration 中找到 SQS
  • SQS 可以藉由將訊息在Queue裡面傳遞將獨立的應用程式串起來
  • 可以藉由 AWS SDK 來進行訊息的推送和拉

SQS Limits

  • Message size :
    一則訊息大小可以在 1 byte ~ 256 KB 之間,
    但只有使用 JAVA 的 SDK 時,大小可以從 256 KB ~ 2 GB(這種訊息會被存在S3,而SDK 的訊息連結會指到 S3 的物件上)
  • Message Retention : 通常訊息在 Queue 中預設會保留 4 天,但可以調整為最小 60 秒最大 14 天

SQS Queue Types

  1. Standard Queues :
    • Standard Queues 幾乎沒有每秒交易量的限制
    • 保證訊息會被送達至少一次
    • 如果訊息有多於一個的複製的話,有可能接收到的順序會跟送出的順序不一樣
    • 這種 Queue 會盡力做好排序
  2. FIFO Queues:
    • 需要確保順序一致的話可以使用 FIFO Queue
    • 但每秒交易量的限制是 300
    • 其他的特性與 Standard Queues 一樣

SQS Visibility Timeout

  • visibility timeout 指的是 message 在多久時間內其他接收者看不到
  • 當一個接收者在 read 某個 message 時,其他接收者會有一段時間看不到
  • 當訊息在處理完之後會從 queue 中刪除,
  • 如果任務沒有在 timeout 時間內被處理完,則在 timeout 後其他接收者又可以看到這則訊息,並處理他,代表一則訊息有可能會被傳送兩次
  • Visibility Timeout 預設 30 秒最小 0 秒最大 12 小時

SQS Short Polling & Long Polling

SQS 有兩種不同的接收訊息的 polling 方式

  1. Short Polling (預設) :
    • short polling 會馬上回傳訊息,即使沒有訊息也會回傳,所以你有可能收到空訊息
    • 當你想要馬上得到結果,可以使用 short polling
  2. Long Polling :
    • long polling 會等到有訊息或是 timeout才回傳結果
    • long polling 可以節省成本,減少收到訊息為空的情況
    • 大多數情況都建議使用 long polling
    • 可以藉由在request中設定 ReceiveMessageRequest 來使用 long polling

上一篇
AWS Certified Solution Architect - Simple Notification System
下一篇
AWS Certified Solution Architect - Elastic File System (EFS)
系列文
AWS Certified Solution Architect 30

尚未有邦友留言

立即登入留言