Qué es gRPC
gRPC es un framework de comunicación remota desarrollado por Google que permite que aplicaciones y servicios se comuniquen de manera eficiente. Se basa en Remote Procedure Call (RPC), es decir, invocar funciones que se ejecutan en un servidor remoto como si fueran locales.
Características principales
- Alto rendimiento: utiliza HTTP/2 con multiplexación, compresión de cabeceras y comunicación bidireccional eficiente.
- Protocol Buffers (Protobuf): para serializar datos de forma compacta y rápida.
- Multi-lenguaje: funciona con Java, Python, Go, C#, Node.js, entre otros.
- Streaming: soporta flujo de datos del cliente al servidor, del servidor al cliente y bidireccional.
- Contratos fuertes: la API se define mediante un archivo
.proto
, asegurando compatibilidad.
Cómo funciona
- Definir el servicio y sus métodos en un archivo
.proto
. - Generar el código para cliente y servidor en el lenguaje deseado.
- El cliente llama a métodos remotos como si fueran locales.
- gRPC envía la solicitud al servidor y devuelve la respuesta.
Diferencias con REST
Característica | gRPC | REST (HTTP/JSON) |
---|---|---|
Transporte | HTTP/2 | HTTP/1.1 |
Formato de datos | Protobuf (binario) | JSON / XML |
Rendimiento | Muy alto | Menor (JSON más pesado) |
Contratos | Fuerte (archivo .proto ) |
Débil (documentación) |
Streaming | Sí, bidireccional | Limitado (polling) |
Casos de uso
- Microservicios que requieren alta eficiencia.
- Aplicaciones en tiempo real que necesitan streaming de datos.
- Sistemas heterogéneos donde clientes y servidores usan diferentes lenguajes.