[SAA + SAP] 21. SQS

SAA

  • Max retention days 14 days
  • Max size 256 KB

  • Cross Account Access
  • S3 push notification 

  • MaximumReceive API
  • Set threshold

  • Request Queue
  • Response Queues for each request (2 requests, then create 2 response queues)
  • SQS Temporary Queue Client

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-temporary-queues.htmlhtml

 

FIFO Queue

When creating a FIFI queue, Queue name should end with `.fifo`app

Has GroupID and Deduplication IDasync

 

  • Need to create a Custom Metric
  • Queue length: ApproximateNumberOfMessages

 

SAP

  • SQS can be used as a write buffer for DynamoDB
    • Because SQS auto-scale
    • write an application to read from SQS then insert to DynamoDB
    • to prevent PrevisionThroughtExpection error

  • SQS might be processed twice
  • Need to make sure consumer is idempotency
  • For example, two EC2 happens to handle the same SQS message
  • Then need to insert data to DynamoDB
  • this is not idempotent, because two record will be the same
  • Instead, we can upsert into DynamoDB based on primary key
  • so that, two operations are still idempotency

idempotency is a Web API design principle defined as the ability to apply the same operation multiple times without changing the result beyond the first try.ide

 

Upsert: An operation that inserts rows into a database table if they do not already exist, or updates them if they do.ui

 

  • Lambda read 10 message in batch
  • Using long polling for efficiency
  • DLQ should be set only on SQS side
  • Invoke DLQ is async, because Lambda doesn't need response from DLQ
  • Use Lambda destination
  • 6x the timeout of your Lambda function

Kinesis and SQS FIFO are both in order, but FIFO only can process 3,000 messages per secondthis

 

 

Idempotent need to be handeld in application side3d

相關文章
相關標籤/搜索