RPC (Remote Procedure Call)

Cơ chế cho phép gọi hàm trên máy khác giống như gọi hàm cục bộ. Mọi phức tạp về gửi qua mạng, chờ phản hồi, chuyển đổi dữ liệu đều được RPC framework che giấu.

Ví dụ microservices: thay vì Service A gửi HTTP request tới B rồi parse JSON, A gọi thẳng getUserInfo(userId) trên B và nhận về object. Framework phổ biến: gRPC (HTTP/2 + Protocol Buffers), Thrift, Apache Dubbo.

Ưu / Nhược

Ưu điểmNhược điểm
Hiệu suất cao (binary, ít overhead hơn HTTP text)Tight coupling - client/server phải cùng interface (.proto/IDL)
Độ trễ thấp, hợp giao tiếp nội bộ microservicesĐổi giao thức phải cập nhật cả hai bên
Trải nghiệm lập trình tiện (gọi hàm như local)Không hỗ trợ trực tiếp trên browser (gRPC cần gRPC-Web proxy)

Khi nào dùng

Hệ phân tán nội bộ, backend-backend, microservices gọi lẫn nhau nhiều, cần hiệu năng cao và các service cùng kiểm soát (Google, Facebook dùng RPC nội bộ). Nếu mở API ra ngoài cho nhiều client đa dạng → ưu tiên REST (dễ debug, không cần thư viện đặc biệt).

Liên quan

  • REST - lựa chọn thay thế cho public API
  • HTTP - gRPC chạy trên HTTP/2
  • Message Queue - giao tiếp async (đối lập RPC đồng bộ)