Message queue cho phép giao tiếp bất đồng bộ giữa các thành phần — một producer gửi message vào queue, và các consumer xử lý chúng sau. Chúng tách rời (decouple) các thành phần, cải thiện resilience, xử lý đợt tăng tải, và cho phép xử lý nền.
Message queue làm gì
Một MESSAGE QUEUE nằm giữa producer và consumer:
Producer → [QUEUE] → Consumer(s) xử lý message (bất đồng bộ, theo nhịp của riêng chúng)
→ producer không chờ xử lý (gửi rồi tiếp tục)
→ message được lưu cho đến khi xử lý (buffer)
→ giao tiếp BẤT ĐỒNG BỘ, decoupled.
Tại sao dùng message queue
✓ DECOUPLING → producer và consumer độc lập (không cần biết nhau hay
cùng available một lúc) → kiến trúc linh hoạt, kiên cường
✓ LOAD LEVELING → queue làm BUFFER các đợt tăng đột biến → consumer xử lý đều đặn (xử lý các đợt bùng nổ
mà không làm quá tải hệ thống)
✓ ASYNC / xử lý nền → đẩy công việc chậm (email, xử lý ảnh, báo cáo)
ra khỏi đường request → phản hồi nhanh
✓ RELIABILITY → message tồn tại đến khi xử lý; retry khi lỗi; không mất nếu một
consumer down
✓ SCALABILITY → thêm consumer để xử lý nhanh hơn (xử lý song song)
