Docs học tập
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).

On this page