Những thuộc tính của SQS Queue

SQS Message Visibility Timeout là gì

  • Một message sau khi được polled bởi một consumer, nó trở nên invisible với các consumers khác.
  • Đó gọi là "Message Visibility Timeout", mặc định là 30 giây (có thể chỉnh sửa)
  • Sau thời gian timeout đó, message quay trở lại visible

Message Visibility Timeout

SQS Dead Letter Queue là gì

  • Mỗi message sẽ có một "Visibility Timeout" sau khi được polled, trong thời gian đó, message được process. Tại đây, sẽ có hai trường hợp xảy ra:
    • Message được process thành công: => Xóa message ra khỏi queue
    • Message process thất bại: => Message sẽ quay trở lại Queue và nằm chờ ở đó
  • Như vậy sẽ có trường hợp vòng lặp vô tận khi:
    • Message process bị lỗi => Quay trở lại Queue => Process lại message...
  • Chúng ta có thể config "MaximumReceives", hiểu đơn giản là số lần message sau khi process và vẫn quay trở lại Queue. Nếu vượt quá "MaximumReceives", message bị lỗi đó sẽ tự động gửi đến một Queue khác là Dead Letter Queue (DLQ)

Dead Letter Queue

SQS Delay Queue là gì

  • Mặc định thời gian delay là 0s (message được nhận ngay lập tức)
  • Chúng ta có thể config thời gian delay để nhận được message (tối đa là 15 phút)

SQS Long Polling là gì

  • Mục đích của Long Polling là giảm thiểu những response empty từ phía Queue
  • Khi có một request nhận message, nếu trong Queue không có message nào, SQS sẽ chờ đến khi có message để response lại
  • WaitTimeSeconds có thể từ 1s-20s

SQS Request-Response Pattern (Virtual queues) là gì

  • Đây là pattern mà Requester và Responser giao tiếp với nhau bẳng message qua một Virtual Queue
  • Để có thể implement pattern này cần sử dụng: SQS Temporary Queue Client

SQS Request-Response Pattern

SQS FIFO Queue là gì

  • FIFO = Firt In Firt Out (Message đến đầu tiên được đọc đầu tiên)
  • Ordering message theo GroupID
Bài trước
left Bài trước
left Access Policy trong SQS Queue
Bài tiếp theo
Giới thiệu SNS right
Bài tiếp theo right
Avatar Phan Văn Đức
VIẾT BỞI

Phan Văn Đức