Mục đích là giới thiệu một giao thức lớp ứng dụng và truyền tải tốt hơn về độ trễ và thông lượng mạng . Hiện tại, ứng dụng sử dụng REST với HTTP / 1.1 và chúng tôi gặp độ trễ cao. Tôi cần giải quyết vấn đề độ trễ này và tôi sẵn sàng sử dụng gRPC (HTTP / 2) hoặc REST / HTTP2 .
HTTP / 2:
- Đa kênh
- Kết nối TCP đơn
- Nhị phân thay vì văn bản
- Nén tiêu đề
- Đẩy máy chủ
Tôi nhận thức được tất cả những lợi thế trên. Câu hỏi số 1: Nếu tôi sử dụng REST với HTTP / 2 , tôi chắc chắn rằng tôi sẽ nhận được sự cải thiện hiệu suất đáng kể khi so sánh với REST với HTTP / 1.1 , nhưng điều này so với gRPC (HTTP / 2) như thế nào?
Tôi cũng biết rằng gRPC sử dụng bộ đệm proto, đây là kỹ thuật tuần tự hóa nhị phân tốt nhất để truyền dữ liệu có cấu trúc trên dây. Bộ đệm Proto cũng giúp phát triển một cách tiếp cận ngôn ngữ bất khả tri. Tôi đồng ý với điều đó và tôi có thể triển khai tính năng tương tự trong REST bằng graphQL. Nhưng mối quan tâm của tôi là quá trình tuần tự hóa: Câu hỏi số 2: Khi HTTP / 2 triển khai tính năng nhị phân này , việc sử dụng bộ đệm proto có mang lại lợi thế bổ sung cho HTTP / 2 không?
Câu hỏi số 3: Về phương diện phân luồng, trường hợp sử dụng hai chiều , gRPC (HTTP / 2) so với (REST và HTTP / 2) như thế nào?
Có rất nhiều blog / video trên internet so sánh gRPC (HTTP / 2) với (REST và HTTP / 1.1) như thế này . Như đã nêu trước đó, tôi muốn biết sự khác biệt, lợi ích khi so sánh GRPC (HTTP / 2) và (REST với HTTP / 2).