gRPC es un marco de trabajo de RPC universal de código abierto y alto rendimiento desarrollado por Google. En gRPC, una aplicación cliente puede llamar de forma directa a métodos en una aplicación de servidor en otra máquina como si fuera un objeto local, lo cual facilita la creación de aplicaciones y servicios distribuidos.
Uno de los beneficios principales de usar gRPC es la documentación; puedes usar tu configuración de servicio y los archivos de definición de la interfaz API a fin de generar documentación de referencia para tu API. Consulta Descripción general del portal para desarrolladores si deseas obtener más información.
Administración de API
Endpoints trabaja con el proxy de servicio extensible (ESP) o el proxy de servicio extensible V2 (ESPv2) a fin de proporcionar administración de API.
Con Endpoints para gRPC, puedes usar las capacidades de administración de API de Endpoints con el fin de agregar una Consola de API, y características de supervisión, hosting, seguimiento, autenticación y más a tus servicios de gRPC. Además, una vez que especificas reglas de asignación especiales, ESP y ESPv2 traducen JSON RESTful en HTTP a solicitudes de gRPC. Esto significa que puedes implementar un servidor de gRPC administrado por Endpoints y llamar a su API con un cliente gRPC o JSON/HTTP, lo que te da mucha más flexibilidad y facilidad para la integración con otros sistemas.
Puedes crear servicios de gRPC para Endpoints en cualquier lenguaje compatible con gRPC. Puedes obtener más información acerca de gRPC, como guías de inicio rápido y también instructivos para crear servidores y clientes, en el sitio de gRPC.
Plataformas de computación compatibles
El ESP y el ESPv2 son proyectos de código abierto al que puedes acceder de estas formas:
- Un contenedor en Artifact Registry
- Consulta las notas de la versión de ESP para ver la imagen de Docker actual de ESP.
- Consulta las notas de la versión de ESPv2 para obtener la imagen actual de Docker del ESPv2.
- Código fuente en GitHub.
- Para obtener detalles sobre cómo compilar el ESP, consulta el archivo ESP README.
- Para obtener detalles sobre cómo compilar ESPv2, consulta el archivo ESPv2 README.
Puedes ejecutar el contenedor de ESP en cualquiera de estas opciones:
- Compute Engine con Docker
- Kubernetes, incluso Google Kubernetes Engine
- Una computadora Linux o macOS, o cualquier otro proveedor de servicios en la nube
Puedes ejecutar el contenedor de ESP en cualquiera de estas opciones:
- Cloud Run
- Knative serving
- GKE
- Compute Engine
- Kubernetes
Consulta Acerca de Cloud Endpoints para obtener más información.
Consulta Cómo implementar el backend de la API para obtener más información sobre cómo implementar la API y el Proxy de servicio extensible en las plataformas de procesamiento de Google Cloud.
Definición y configuración de servicios
gRPC está basado en la idea de definir un servicio para el que se especifican los métodos que pueden llamarse de forma remota con sus parámetros y tipos de resultados. De forma predeterminada, gRPC usa búferes de protocolo, como el Lenguaje de Definición de Interfaz (IDL), para describir la interfaz del servicio y la estructura de los mensajes de carga útil.
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
Para usar gRPC con Endpoints, debes proporcionar una configuración del servicio junto con la definición del servicio. Esto configura el comportamiento del entorno de ejecución de tu servicio, incluso la autenticación, las API incluidas en el servicio, las asignaciones de solicitudes HTTP a métodos gRPC y configuraciones especiales de Cloud Endpoints.
Transcodificación
Endpoints proporciona una traducción de protocolo a tus servicios de gRPC, lo que permite a los clientes usar HTTP/JSON para comunicarse con un servicio de gRPC mediante el ESP o ESPv2.
El caso práctico más común es permitir a los clientes de navegador hablar con los servidores de gRPC sin asistencia especial de las bibliotecas cliente de gRPC. Endpoints proporciona un mecanismo para asignar solicitudes de HTTP a métodos de gRPC como parte de la configuración del servicio.
Puedes obtener más información sobre este tema en Transcodificación de HTTP/JSON a gRPC.
Limitaciones
Las siguientes características de gRPC aún no son compatibles con Endpoints:
- Compresión de carga útil
- Todos los IDL aparte de los búferes de protocolo
Además, los extremos solo son compatibles con los servicios de gRPC para GKE, Compute Engine y Cloud Run (Beta). Los extremos no son compatibles con los servicios de gRPC para entornos de App Engine.
Próximos pasos
- Completa uno de nuestros instructivos para poner en marcha un servicio de gRPC simple con Cloud Endpoints en el entorno que elijas.
- Obtén información acerca de cómo configurar un servicio de gRPC para Cloud Endpoints.
- Explora las muestras. La muestra de getting-started-grpc está disponible en GitHub en estos lenguajes:
- La muestra de Bookstore está disponible en estos lenguajes: