En esta página, se muestran detalles específicos de Cloud Run for Anthos para desarrolladores que quieren usar gRPC a fin de conectar un servicio de Cloud Run for Anthos con otros servicios, por ejemplo, con el fin de proporcionar comunicación simple y de alto rendimiento entre microservicios internos. Cloud Run for Anthos admite llamadas de gRPC unarias y de transmisión.
gRPC unario
En una llamada RPC unaria, el cliente envía una sola solicitud al servidor y obtiene una sola respuesta, similar a una llamada a función normal:rpc SayHello(HelloRequest) returns (HelloResponse);
gRPC de transmisión
Las siguientes opciones de transmisión están disponibles con gRPC. RPC de transmisión del servidor en las que el cliente envía una solicitud al servidor y obtiene una transmisión para leer que contiene una secuencia de mensajes. El cliente lee la transmisión que se muestra hasta que no haya más mensajes.
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);
RPC de transmisión del cliente en las que el cliente escribe una secuencia de mensajes y los envía al servidor en una transmisión. Una vez que el cliente termina de escribir los mensajes, espera a que el servidor muestre la respuesta.
rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse);
RPC de transmisión bidireccional en las que el cliente y el servidor envían mensajes en dos transmisiones de lectura y escritura que operan de forma independiente.
rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
Entre los casos prácticos, se incluyen los siguientes:
- Comunicación entre microservicios internos
- Cargas altas de datos (gRPC usa búferes de protocolo, que son hasta siete veces más rápidos que las llamadas de REST).
- Solo se necesita una definición de servicio simple; no es necesario que escribas una biblioteca cliente completa
Para integrar el servicio a gRPC, sigue estos pasos:
- Define los mensajes y las respuestas de la solicitud en un archivo proto y compílalos.
- Crea un servidor de gRPC para administrar las solicitudes y mostrar las respuestas: debe escuchar la variable de entorno
PORT
. - Crea un cliente que envíe solicitudes y administre respuestas desde el servidor de gRPC.
- De manera opcional, agrega autenticación.
- Compila y, luego, implementa el servicio.
Define y compila mensajes en un archivo proto
No hay elementos específicos adicionales ni de Cloud Run for Anthos para agregar a las definiciones de protocolos. Como con cualquier otro uso de gRPC, usa búferes de protocolo de gRPC para las definiciones de servicios y la serialización de datos.
Crea un cliente de gRPC
No hay elementos específicos adicionales de Cloud Run for Anthos para agregar a un cliente que usa gRPC. Sigue los documentos de gRPC acerca del uso de definiciones de servicios en el código del cliente y los clientes de muestra proporcionados en los instructivos de gRPC específicos del lenguaje.
Detecta solicitudes de gRPC en un servicio de Cloud Run for Anthos
El único requisito especial para un servidor de gRPC que se ejecuta en Cloud Run for Anthos es escuchar en el puerto que se especifica en la variable de entorno PORT
como se muestra en el código:
Comienza a usarlo
Abre una conexión de gRPC a un servicio
Si deseas abrir una conexión de gRPC a un servicio para enviar mensajes de gRPC, debes especificar el dominio de host, que es la URL del servicio de Cloud Run for Anthos o el dominio personalizado mapeado a ese servicio, junto con el puerto 443, que es el puerto que se espera que use gRPC.
Comienza a usarlo
Envía solicitudes de gRPC sin autenticación
En el siguiente ejemplo, se muestra cómo enviar una solicitud sin autenticación mediante una conexión de gRPC que se configuró como se mencionó antes.