Цель состоит в том, чтобы представить протокол транспортного и прикладного уровня, который имеет лучшие задержки и пропускную способность сети . В настоящее время приложение использует REST с HTTP / 1.1, и мы наблюдаем высокую задержку. Мне нужно решить эту проблему с задержкой, и я готов использовать gRPC (HTTP / 2) или REST / HTTP2 .
HTTP / 2:
- Мультиплексированный
- Одно TCP-соединение
- Двоичный вместо текстового
- Сжатие заголовка
- Сервер Push
Я осознаю все перечисленные преимущества. Вопрос № 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).