- เป็นบริการแบบ Drop-In ที่สามารถทดแทน SQS ได้โดยตรง ช่วยยกระดับประสบการณ์ของนักพัฒนาอย่างมาก
- มี UI ที่ใช้งานได้จริง พร้อมความสามารถด้านการมองเห็น การติดตาม การตั้งเวลาข้อความ และการจำกัดอัตรา
- สามารถรันอินสแตนซ์ SQS ส่วนตัวได้บนทุกคลาวด์
- ดีพลอยเป็นไบนารี Go เดี่ยว และใช้งานได้จากไคลเอนต์ SQS เดิม
- UI รันที่
:3000 และเซิร์ฟเวอร์ที่เข้ากันได้กับ SQS รันที่ :3001
- รองรับการทำงานร่วมกับไคลเอนต์ SQS ของทุกภาษา
- Python
-
import boto3
# เปลี่ยนแค่ endpoint_url เท่านั้น
sqs = boto3.client("sqs", ..., endpoint_url="http://localhost:3001")
sqs.send_message(QueueUrl="...", MessageBody="hello world")
- ทำงานร่วมกับ Celery ได้อย่างราบรื่นด้วย
-
app = Celery("tasks", broker_url="sqs://...@localhost:3001")
ความเห็นของ GN⁺
- SmoothMQ ขยายความสามารถของ SQS เพื่อมอบประสบการณ์ที่ดีกว่าให้กับนักพัฒนา
- มีความยืดหยุ่นสูงเพราะสามารถรันอินสแตนซ์ส่วนตัวได้โดยไม่ผูกติดกับคลาวด์ใดคลาวด์หนึ่ง
- สามารถใช้ไคลเอนต์ SQS เดิมได้ทันที จึงมีต้นทุนในการย้ายระบบต่ำ
- สามารถจัดการคิวและข้อความได้ง่ายผ่าน UI ทำให้การปฏิบัติการมีประสิทธิภาพสูง
- เมื่อนำเทคโนโลยีใหม่มาใช้ ควรพิจารณาความเข้ากันได้กับระบบเดิมอย่างรอบคอบ
3 ความคิดเห็น
ดูเหมือนว่า SQLite กับ Postgres ก็น่าจะยังถูกใช้อยู่แม้อีก 10 ปีข้างหน้า ส่วน Redis ก็เคยคิดว่าน่าจะเป็นแบบนั้นเหมือนกัน แต่ช่วงนี้ก็ไม่แน่ใจแล้วครับ
ทุกวันนี้ใช้ตัวไหนกันแทน Redis ครับ?
ความคิดเห็นจาก Hacker News
ไอเดียในการใช้งานเทคโนโลยี k8s, kubernetes, cloud native, self-hosted, edge-enabled ในราคาประหยัดนั้นยอดเยี่ยม
ชี้ว่า SQLite ทำงานบนเซิร์ฟเวอร์เดี่ยว และแม้จะใช้ได้ในกรณีส่วนใหญ่ แต่ก็ไม่อาจเชื่อถือได้ 100%
หากไม่นับเรื่องสเกลและเบนช์มาร์ก นี่เป็นเครื่องมือที่มีประโยชน์สำหรับโมดูลทดสอบฟังก์ชัน/ยูนิตที่ใช้ SQS
ตั้งเป้าเป็นระบบคิวแบบโฮสต์ โดยมุ่งให้ถูกกว่า SQS โดยไม่ต้องแลกกับประสิทธิภาพ
ชอบการเขียนบริการที่เข้ากันได้กับ AWS API และกล่าวถึงโปรเจ็กต์ Dyna53
หากใช้ LocalStack ก็สามารถใช้ SQS และบริการ AWS อื่น ๆ อีกมากมายสำหรับการทดสอบ/พัฒนาได้ โดยมีเอกสารที่ดีและเป็นโอเพนซอร์ส
ชอบโปรเจ็กต์ที่สร้างทางเลือก self-hosted แบบเรียบง่ายสำหรับบริการยอดนิยม
ข้อเสนอแนะอย่างรวดเร็วเกี่ยวกับโครงสร้างโปรเจ็กต์:
กล่าวถึง ElasticMQ โดยใช้มันเพื่อจำลอง SQS ในสภาพแวดล้อม Docker
ถามว่าทำไมถึงปิดการรองรับ foreign key แต่ยังใช้งานมันอยู่ในสคีมาฐานข้อมูล