Rest api and GRPC

Câu hỏi:

So sánh giữa gRPC và REST API 

Em nghe giới thiệu là gRPC là chuẩn giao tiếp mới giữa các services, có hiệu năng tốt hơn và có thể thay thế REST API. 

Em đang xây dựng 1 hệ thống mới, đang phân vân nên chuyển qua dùng gRPC hay tiếp tục dùng lại REST từ hệ thống cũ, mong các bác tư vấn giúp 

Gợi ý:

- Nên kết hợp bác ạh. Mình đang làm dự án thì internal bên trong mình xài gRPC, 1 vài cái integration với hệ thống cũ cùng sử dụng nó nếu được

Public API mình vẫn qua Rest vì đa phần nếu các hệ thống bên ngoài và frontend thì Rest vẫn tốt nhất. 

Về performance thì theo mấy ngôn ngữ đo được gRPC sẽ tốt hơn khoảng +-20% so với Rest về mặt tốc độ và size payload (message).

Ngoài ra bạn có thể consider dùng Rest + message pack nếu k có nhu cầu chuyển qua gRPC

- Restful và gRPC về bản chát là giống nhau, đều là công cụ RPC (remote procedure call). 

Chỉ khác nhau cách cài đặt (implement): gRPC sử dụng binary trong đóng gói dữ liệu để truyền thông (protobuf), còn Restf thì tự do, bạn tự chọn (thường là text-based: xml hoặc json). 

Nhờ đó mà gRPC thường có tốc độ cao và độ trễ thấp hơn. Bạn chỉ nên chuyển qua gRPC nếu ứng dụng của bạn cần một số yếu tố như tốc độ truyển thông cao và độ trễ thấp, truyển dữ liệu kiểm stream. 

Cái giá phải trả là độ phức tạp tăng lên, khó cài đặt (system) và bảo trì hơn nhiều

Tham khảo từ cộng đồng Việt Nam Microservices Group