Метою є впровадження протоколу транспортного та прикладного рівня, який є кращим за затримкою та пропускною здатністю мережі . В даний час програма використовує REST з HTTP / 1.1, і ми відчуваємо високу затримку. Мені потрібно вирішити цю проблему затримки, і я відкритий для використання або gRPC (HTTP / 2), або REST / HTTP2 .
HTTP / 2:
- Мультиплекс
- Єдине підключення TCP
- Двійковий замість текстового
- Стиснення заголовка
- Серверне натискання
Мені відомі всі вищезазначені переваги. Питання №1: Якщо я використовую REST з HTTP / 2 , я впевнений, я отримаю значне покращення продуктивності в порівнянні з REST з HTTP / 1.1 , але як це порівняно з gRPC (HTTP / 2) ?
Мені також відомо, що gRPC використовує прото-буфер, який є найкращим методом двійкової серіалізації для передачі структурованих даних по дроту. Буфер прото також допомагає у розробці мовного агностичного підходу. Я згоден з цим, і я можу реалізувати ту саму функцію в REST за допомогою graphQL. Але мене турбує серіалізація: Питання №2: Коли HTTP / 2 реалізує цю двійкову функцію , чи використовує прото буфер додаткову перевагу поверх HTTP / 2?
Запитання №3: Що стосується потокового передавання, двонаправлених випадків використання , як gRPC (HTTP / 2) порівнює з (REST та HTTP / 2)?
В Інтернеті так багато блогів / відео , які порівнюють gRPC (HTTP / 2) з (REST та HTTP / 1.1), як це . Як було сказано раніше, я хотів би знати відмінності та переваги порівняння GRPC (HTTP / 2) та (REST з HTTP / 2).