So sánh SQS vs SNS vs Kinesis
So sánh SQS vs SNS vs Kinesis
| Thuộc tính | SQS | SNS | Kinesis |
|---|---|---|---|
| Kiểu xử lý | Consumer pull data | Push data đến nhiều subscriber | Standard: pull Enhanced fan-out: push |
| Lưu trữ dữ liệu | Dữ liệu bị xóa sau khi consume | Không lưu trữ (mất nếu không gửi thành công) | Có thể replay dữ liệu |
| Mức độ scale | Không giới hạn số lượng worker (consumer) | Tối đa 12.500.000 subscriber | Tối đa 2MB/shard/consumer (với enhanced fan-out) |
| Provision throughput | Không cần cấu hình throughput | Không cần cấu hình throughput | Có 2 mode: Provisioned và On-demand |
| Đảm bảo thứ tự | Chỉ hàng đợi FIFO mới đảm bảo | Hỗ trợ FIFO khi kết hợp với SQS FIFO | Đảm bảo thứ tự theo từng shard |
| Tính năng đặc biệt | - Có thể delay từng message riêng biệt | - Hỗ trợ tới 100.000 topic - Có thể tích hợp với SQS (mô hình fan-out) | - Phù hợp với real-time big data, analytics, ETL - Dữ liệu hết hạn sau X ngày |
| Trường hợp sử dụng | Job queue, decoupling worker | Notification, broadcast | Streaming dữ liệu thời gian thực |
Tóm tắt hướng sử dụng:
- SQS: dùng cho hàng đợi công việc, đảm bảo tách biệt producer-consumer, scale dễ dàng.
- SNS: dùng cho publish/subscribe nhiều subscriber, không cần giữ message.
- Kinesis: dùng cho luồng dữ liệu lớn, real-time analytics, ETL pipelines, có thể đọc lại dữ liệu trong khoảng thời gian nhất định.
Bạn thấy bài này thế nào?