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
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)
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 FIFO Queue là gì
- FIFO = Firt In Firt Out (Message đến đầu tiên được đọc đầu tiên)
- Ordering message theo GroupID