Thursday, November 21, 2024

[AWS] SOS vs SNS vs Kinesis

-

SQS.

Trong Amazon Simple Queue Service (SQS), consumer sử dụng phương thức “pull data” để lấy dữ liệu từ hàng đợi. Khi dữ liệu đã được consumer lấy ra, nó sẽ bị xóa khỏi hàng đợi. Một điểm mạnh của SQS là bạn có thể tạo bao nhiêu worker (consumer) tùy thích mà không cần phải cấu hình đầu vào thêm throughput.

Tuy nhiên, SQS chỉ đảm bảo thứ tự khi sử dụng hàng đợi FIFO. Ngoài ra, bạn có thể sử dụng tính năng trì hoãn tin nhắn của SQS để lên lịch tin nhắn được gửi đến hàng đợi trong tương lai.

SNS.

Amazon SNS (Simple Notification Service) là dịch vụ cho phép gửi thông báo tới nhiều subscribers thông qua nhiều giao thức khác nhau như HTTP, Email, SMS, hoặc các ứng dụng khác. Với Amazon SNS, ta có thể push data (thông báo) tới nhiều subscribers (lên đến 12,500,000 subscribers) mà không cần phải provision throughput hay quản lý tài nguyên.

Amazon SNS hoạt động theo mô hình publish/subscribe (Pub/Sub) nên các subscribers phải đăng ký để nhận thông báo. SNS hỗ trợ đến 100,000 topics (chủ đề) để phân loại thông báo và gửi đến các subscribers tương ứng.

Ngoài ra, SNS cũng hỗ trợ tính năng First-In-First-Out (FIFO) cho SQS FIFO, cho phép đảm bảo thứ tự của các thông báo đến các consumer khi sử dụng kiến trúc fan-out pattern. Tuy nhiên, dữ liệu không được lưu trữ và sẽ bị mất nếu không được giao cho subscriber.

Kinesis.

AWS Kinesis Data Streams là một dịch vụ để ghi và đọc các luồng dữ liệu thời gian thực. Dữ liệu được phân chia thành các mảnh (shard), mỗi mảnh có thể chứa tối đa 2MB dữ liệu. Có hai chế độ sử dụng Kinesis Data Streams là chế độ được cung cấp sẵn (provisioned mode) và chế độ sử dụng theo nhu cầu (ondemand capacity mode). Chế độ được cung cấp sẵn sẽ yêu cầu người dùng xác định số lượng shard và throughput capacity trước. Trong khi đó, chế độ sử dụng theo nhu cầu sẽ tự động mở rộng và thu hẹp shard và throughput capacity tương ứng với lưu lượng dữ liệu hiện tại.

Dịch vụ Kinesis Data Streams hỗ trợ hai phương thức đọc dữ liệu là pull data và push data. Trong đó, Enhanced fan-out là một tính năng của push data, cho phép các subscriber đọc dữ liệu từ một shard mà không gây ảnh hưởng đến các subscriber khác. Các shard trong Kinesis Data Streams cung cấp tính năng đảm bảo thứ tự dữ liệu tại cùng một shard, tuy nhiên, không có tính năng đảm bảo thứ tự dữ liệu giữa các shard khác nhau.

Các dữ liệu trong Kinesis Data Streams sẽ bị xóa sau khi đã được đọc. Kinesis Data Streams cũng cung cấp tính năng replay data, cho phép người dùng đọc lại dữ liệu đã bị xóa trong một khoảng thời gian cụ thể. Dịch vụ Kinesis Data Streams thường được sử dụng trong các trường hợp phân tích dữ liệu thời gian thực hoặc ETL (Extract-Transform-Load).

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories