O objetivo é introduzir um protocolo de camada de transporte e aplicação que seja melhor em sua latência e rendimento de rede . Atualmente, o aplicativo usa REST com HTTP / 1.1 e experimentamos uma alta latência. Preciso resolver esse problema de latência e estou aberto para usar gRPC (HTTP / 2) ou REST / HTTP2 .
HTTP / 2:
- Multiplexado
- Conexão TCP Única
- Binário em vez de textual
- Compressão de cabeçalho
- Push de servidor
Estou ciente de todas as vantagens acima. Pergunta nº 1: Se eu usar REST com HTTP / 2 , tenho certeza que terei uma melhora significativa de desempenho em comparação com REST com HTTP / 1.1 , mas como isso se compara com gRPC (HTTP / 2) ?
Também estou ciente de que o gRPC usa proto buffer, que é a melhor técnica de serialização binária para transmissão de dados estruturados na rede. O buffer de protótipo também ajuda no desenvolvimento de uma abordagem independente de linguagem. Eu concordo com isso e posso implementar o mesmo recurso em REST usando o GraphQL. Mas minha preocupação é com a serialização: Pergunta nº 2: Quando o HTTP / 2 implementa esse recurso binário , o uso do buffer proto oferece uma vantagem adicional em relação ao HTTP / 2?
Pergunta nº 3: em termos de streaming, casos de uso bidirecionais , como o gRPC (HTTP / 2) se compara ao (REST e HTTP / 2)?
Há tantos blogs / vídeos fora na internet que compara gRPC (HTTP / 2) com (REST e HTTP / 1.1) como este . Como afirmado anteriormente, gostaria de saber as diferenças, benefícios em comparar GRPC (HTTP / 2) e (REST com HTTP / 2).