- Một dịch vụ drop-in có thể thay thế trực tiếp SQS, cải thiện đáng kể trải nghiệm của lập trình viên
- Cung cấp UI đầy đủ tính năng, khả năng quan sát, truy vết, lập lịch tin nhắn và giới hạn tốc độ
- Có thể chạy một phiên bản SQS riêng trên mọi đám mây
- Được triển khai dưới dạng một binary Go duy nhất và có thể dùng từ các client SQS hiện có
- UI chạy trên
:3000, còn máy chủ tương thích SQS chạy trên :3001
- Tương thích với các client SQS của mọi ngôn ngữ
- Python
-
import boto3
# Chỉ cần thay đổi endpoint_url
sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001")
sqs.send_message(QueueUrl="...", MessageBody="hello world")
- Hoạt động mượt mà với cả Celery
-
app = Celery("tasks", broker_url="sqs://...@localhost:3001")
Ý kiến của GN⁺
- SmoothMQ mở rộng các tính năng của SQS để mang lại trải nghiệm tốt hơn cho lập trình viên
- Có thể chạy phiên bản riêng mà không bị phụ thuộc vào đám mây, giúp tăng tính linh hoạt
- Có thể tiếp tục dùng nguyên các client SQS hiện có nên chi phí chuyển đổi thấp
- Có thể quản lý hàng đợi và tin nhắn dễ dàng qua UI, giúp nâng cao hiệu quả vận hành
- Khi áp dụng công nghệ mới, cần cân nhắc đầy đủ khả năng tương thích với hệ thống hiện có
3 bình luận
Có lẽ SQLite và Postgres vẫn sẽ còn được dùng cả 10 năm nữa. Tôi cũng từng nghĩ Redis sẽ như vậy, nhưng dạo này thì không chắc nữa.
Dạo này người ta dùng gì thay cho Redis vậy?
Ý kiến Hacker News
Ý tưởng giúp sử dụng các công nghệ k8s, kubernetes, cloud native, self-hosted, edge-enabled với chi phí thấp là rất hay
Chỉ ra rằng SQLite chạy trên một máy chủ đơn lẻ, và dù hoạt động trong hầu hết trường hợp, nó không thể đáng tin cậy 100%
Bỏ qua vấn đề quy mô và benchmark, đây là công cụ hữu ích cho các mô-đun kiểm thử tính năng/kiểm thử đơn vị dùng SQS
Nhắm đến một hệ thống hàng đợi được lưu trữ, với mục tiêu rẻ hơn SQS mà không phải hy sinh hiệu năng
Thích viết các dịch vụ tương thích API AWS, và có nhắc đến dự án Dyna53
Dùng LocalStack thì có thể sử dụng SQS và nhiều dịch vụ AWS khác cho mục đích kiểm thử/phát triển; nó được tài liệu hóa tốt và là mã nguồn mở
Thích các dự án tạo ra những lựa chọn thay thế self-hosted đơn giản cho các dịch vụ phổ biến
Một đề xuất nhanh về cấu trúc dự án:
Nhắc đến ElasticMQ, được dùng để mô phỏng SQS trong môi trường Docker
Hỏi lý do vì sao lại tắt hỗ trợ khóa ngoại nhưng vẫn tiếp tục dùng nó trong schema cơ sở dữ liệu