Thursday, November 21, 2024

[AWS] Long Polling và FIFO Queues

-

1. Long Polling.

Trong Amazon SQS, khi consumer yêu cầu các tin nhắn từ hàng đợi, nó có thể tùy chọn “chờ” cho đến khi có tin nhắn đến nếu không có tin nhắn nào trong hàng đợi. Điều này được gọi là Long Polling.

Long Polling giảm số lượng các cuộc gọi API được thực hiện đến SQS trong khi tăng tính hiệu quả và giảm độ trễ của ứng dụng của bạn. Thời gian chờ có thể từ 1 giây đến 20 giây (20 giây được ưu tiên).

Long Polling được ưu tiên hơn Short Polling vì nó giảm số lượng cuộc gọi API được thực hiện đến SQS, làm giảm chi phí và tăng hiệu quả của ứng dụng.

Long Polling có thể được kích hoạt tại cấp độ hàng đợi hoặc tại cấp độ API bằng cách sử dụng WaitTimeSeconds. Khi WaitTimeSeconds được thiết lập, consumer sẽ chờ đến khi có tin nhắn đến hoặc cho đến khi thời gian chờ kết thúc, trả về các tin nhắn có sẵn (nếu có) trong hàng đợi.

Tóm lại, Long Polling là một kỹ thuật giúp giảm số lượng các cuộc gọi API được thực hiện đến SQS, tăng tính hiệu quả và giảm độ trễ của ứng dụng.

2. FIFO Queues.

Amazon Simple Queue Service (SQS) là một dịch vụ hàng đợi được cung cấp bởi Amazon Web Services (AWS). SQS FIFO là một loại hàng đợi FIFO (First In First Out) trong SQS.

Trong hàng đợi FIFO, thứ tự của các thông điệp trong hàng đợi được bảo tồn theo thứ tự mà chúng được đưa vào hàng đợi. Điều này có nghĩa là thông điệp được đưa vào hàng đợi đầu tiên sẽ được xử lý đầu tiên.

Hàng đợi FIFO có khả năng gửi chính xác một lần thông điệp bằng cách loại bỏ các bản sao của nó. Vì vậy, bạn có thể tin tưởng rằng mỗi thông điệp chỉ được xử lý một lần duy nhất.

Hàng đợi FIFO có giới hạn về tỷ lệ thông lượng, khoảng 300 tin nhắn mỗi giây nếu không sử dụng batching và 3000 tin nhắn mỗi giây nếu sử dụng batching.

Một điểm đặc biệt của hàng đợi FIFO là các thông điệp được xử lý theo thứ tự bởi người tiêu thụ. Điều này có nghĩa là thông điệp đầu tiên được gửi vào hàng đợi sẽ được xử lý trước và thông điệp cuối cùng được gửi vào hàng đợi sẽ được xử lý sau cùng.

Bây giờ để demo FIFO hãy tạo Queue mới bằng cách vào Amazon SQS › Queues › Create queue, chọn FIFO và đặt 1 cái tên cho nó.

Content-based deduplication là tính năng của Amazon SQS cho phép loại bỏ các tin nhắn trùng lặp dựa trên nội dung của chúng. Khi tính năng này được kích hoạt trên một hàng đợi SQS, các thông điệp được gửi đến hàng đợi sẽ được kiểm tra để xem chúng có giống nhau về nội dung hay không. Nếu chúng giống nhau, chỉ có một tin nhắn duy nhất sẽ được lưu trữ trong hàng đợi và các tin nhắn trùng lặp sẽ bị loại bỏ.

Nếu tính năng Content-based deduplication được kích hoạt, SQS sẽ tự động tạo ra một ID cho mỗi tin nhắn gửi đến hàng đợi và sử dụng ID này để so sánh nội dung của các tin nhắn khác trong hàng đợi. Tuy nhiên, trong trường hợp các ứng dụng cần kiểm soát chính xác việc xác định ID của tin nhắn, người dùng có thể cung cấp một ID riêng cho tin nhắn đó. Khi tính năng Content-based deduplication được kích hoạt, việc cung cấp ID riêng cho tin nhắn không bắt buộc.

Giữ nguyên tất cả các thiết lập còn lại và kéo xuống dưới bấm Create queue. Sau khi tạo xong Queue này hãy gửi tin nhắn đầu tiên.

Tiếp theo là tin nhắn thứ 2.

Tiếp theo là tin nhắn thứ 3.

Tiếp theo là tin nhắn thứ 4.

Sau khi có 4 tin nhắn hãy bấm vào Poll for messages để quá trình vào hàng đợi bắt đầu.

Xem tin nhắn đầu tiên ta đọc được nội dung Hello World 4.

Xem tin nhắn cuối cùng ta đọc được nội dung Hello World 1.

Tương tự xem tin nhắn thứ 3 ta đọc được nội dung Hello World 2.

Và xem tin nhắn thứ 2 ta đọc được nội dung Hello World 3.

Cuối cùng để kết thúc bài lab mình sẽ xoá 4 tin nhắn này.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories