¿Qué protocolos se utilizan en el camino de la alta concurrencia?
El protocolo de APIs más utilizado en la actualidad, es REST; es bastante viejo, fue creado en el año 2000 y se caracteriza por su simplicidad, fácil curva de aprendizaje y su múltiple formatos soportados (XML, JSON, HTML, texto plano, etc.).
gRPC es un sistema de llamado de procedimiento remoto, implementado por Google. Los RPCs funcionan de la siguiente manera:
- Un cliente invoca un procedimiento remoto, serializa los parámetros y envÃa el mensaje al servidor.
- El servidor, al recibir el mensaje, serializa el contenido, ejecuta el procedimiento y envÃa al cliente el resultado.
Una de las principales diferencias entre gRPC y REST es que gRPC usa como lenguaje de definición Protobuf. Este lenguaje es de formato binario y no es legible por humanos, pero permite la serialización y deserialización de datos estructurados; el desarrollador decide cómo definir los datos y después debe compilarlos, dando como resultado un archivo con una clase por cada mensaje que hayamos definido.
REST soporta varios lenguajes de definición, aunque sin duda el más utilizado es JSON, que es bastante fácil de leer por un humano, pero hace que el tamaño del mensaje sea mayor, usando más ancho de banda.
La otra gran diferencia entre gRPC y REST es que gRPC usa el protocolo HTTP2, que es más nuevo y liviano, manteniendo las premisas y paradigmas básicos de HTTP, pero eliminando las partes opcionales de HTTP1.1. HTTP2 es binario y tiene la capacidad admitir muchas transmisiones bidireccionales en una misma conexión TCP.
gRPC es recomendado para su uso en microservicios o para integraciones de APIs internas, gracias a que ofrece una mayor estabilidad y una optimizada respuesta por su baja latencia en el envÃo de mensajes por el formato binario de HTTP2.
Por otro lado, REST es recomendado para integraciones con clientes y APIs públicas por su facilidad de uso e implementación.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?