Backend nền tảng
G2 · Cách các microservice giao tiếp
Sync: REST (HTTP/JSON – đơn giản), gRPC (protobuf – nhanh). Gọi trực tiếp, chờ phản hồi.
G2 · Middle
Sync = gọi điện thoại (phải chờ người kia nghe máy). Async = gửi tin nhắn (gửi xong làm việc khác).
Cốt lõi
- Sync: REST (HTTP/JSON – đơn giản), gRPC (protobuf – nhanh). Gọi trực tiếp, chờ phản hồi.
- Async: Message Queue / Event Bus (Kafka, RabbitMQ). Bắn đi rồi thôi (fire & forget).
Đánh đổi
Async giảm phụ thuộc, tăng khả năng phục hồi; đổi lại khó debug, eventual consistency.
Trong thực tế
Sync: request của user. Async: đặt hàng xong → gửi email.
Bug thường gặp
Gọi HTTP sang service khác không đặt timeout → service kia chậm kéo theo toàn bộ thread bị treo.
Tự hỏi lại
Gọi sync chuỗi dài A→B→C→D gây vấn đề gì? (độ trễ cộng dồn, lỗi dây chuyền → circuit breaker).