El objetivo es introducir un protocolo de capa de aplicación y transporte que sea mejor en cuanto a latencia y rendimiento de red . Actualmente, la aplicación usa REST con HTTP / 1.1 y experimentamos una alta latencia. Necesito resolver este problema de latencia y estoy abierto a usar gRPC (HTTP / 2) o REST / HTTP2 .
HTTP / 2:
- Multiplexado
- Conexión TCP única
- Binario en lugar de textual
- Compresión de encabezado
- Empuje del servidor
Soy consciente de todas las ventajas anteriores. Pregunta No. 1: Si uso REST con HTTP / 2 , estoy seguro de que obtendré una mejora significativa en el rendimiento en comparación con REST con HTTP / 1.1 , pero ¿cómo se compara esto con gRPC (HTTP / 2) ?
También soy consciente de que gRPC usa proto buffer, que es la mejor técnica de serialización binaria para la transmisión de datos estructurados en el cable. Proto buffer también ayuda a desarrollar un enfoque independiente del lenguaje. Estoy de acuerdo con eso y puedo implementar la misma función en REST usando graphQL. Pero mi preocupación es la serialización: Pregunta No. 2: Cuando HTTP / 2 implementa esta característica binaria , ¿el uso de proto buffer brinda una ventaja adicional sobre HTTP / 2?
Pregunta No. 3: En términos de transmisión, casos de uso bidireccionales , ¿cómo se compara gRPC (HTTP / 2) con (REST y HTTP / 2)?
Hay tantos blogs / videos en Internet que comparan gRPC (HTTP / 2) con (REST y HTTP / 1.1) de esta manera . Como se indicó anteriormente, me gustaría conocer las diferencias y los beneficios de comparar GRPC (HTTP / 2) y (REST con HTTP / 2).