gRPC (acrónimo de Google Remote Procedure Calls [2] ) es un marco de trabajo de llamadas a procedimientos remotos (RPC) multiplataforma de alto rendimiento . gRPC fue creado inicialmente por Google , pero es de código abierto y se utiliza en muchas organizaciones. Los casos de uso van desde microservicios hasta la "última milla" de la informática (móvil, web e Internet de las cosas). gRPC utiliza HTTP/2 para el transporte, Protocol Buffers como lenguaje de descripción de la interfaz y proporciona funciones como autenticación, transmisión bidireccional y control de flujo , enlaces bloqueantes o no bloqueantes, y cancelación y tiempos de espera. Genera enlaces de cliente y servidor multiplataforma para muchos lenguajes. Los escenarios de uso más comunes incluyen la conexión de servicios en una arquitectura de estilo de microservicios o la conexión de clientes de dispositivos móviles a servicios de backend. [3]
A partir de 2019, el uso de HTTP/2 por parte de gRPC hace imposible implementar un cliente gRPC en un navegador, requiriendo en su lugar un proxy. [4]
Historia
A partir de 2001, Google creó una infraestructura RPC de propósito general llamada Stubby para conectar la gran cantidad de microservicios que se ejecutaban dentro y entre sus centros de datos . [5] En marzo de 2015, Google decidió crear la siguiente versión de Stubby y convertirla en código abierto. El resultado fue gRPC.
Autenticación
gRPC admite el uso de seguridad de la capa de transporte (TLS) y autenticación basada en tokens. La conexión a los servicios de Google debe utilizar TLS. Existen dos tipos de credenciales: credenciales de canal y credenciales de llamada.
Para la autorización basada en token, gRPC proporciona un interceptor de servidor [6] y un interceptor de cliente. [7]
Codificación
gRPC utiliza buffers de protocolo para codificar datos. Los buffers de protocolo proporcionan un formato de serialización y un lenguaje de definición de interfaz. [8]
Pruebas
Algunas de las herramientas de software utilizadas para probar implementaciones de gRPC incluyen Postman , ezy, [9] Insomnia y Step CI. [10]
Adopción
Muchas organizaciones utilizan gRPC, incluidas Uber , [11] Square , Netflix , IBM , CoreOS , Docker , CockroachDB , Arista Networks , Cisco , Juniper Networks , [12] Spotify , [13] Zalando , [14] Dropbox , [15] y Google como desarrollador original.
El proyecto de código abierto u-bmc utiliza gRPC para reemplazar la Interfaz de gestión de plataforma inteligente (IPMI). [16] El 8 de enero de 2019, Dropbox anunció que la próxima versión de "Courier", su marco de trabajo RPC en el núcleo de su arquitectura orientada a servicios (SOA), se migraría para basarse en gRPC, principalmente porque se alineaba bien con sus marcos de trabajo RPC personalizados existentes. [17]
Alternativas
Véase también
Referencias
- ^ "lanzamientos de gRPC". GitHub . Consultado el 20 de diciembre de 2024 .
- ^ "Preguntas frecuentes". gRPC .
- ^ "Acerca de gRPC". gRPC . Consultado el 25 de mayo de 2021 .
- ^ "El estado de gRPC en el navegador". gRPC . 8 de enero de 2019.
- ^ "gRPC: un verdadero marco de trabajo de RPC a escala de Internet ahora es la versión 1.0 y está listo para implementaciones de producción". 24 de agosto de 2016. Consultado el 3 de abril de 2023 .
- ^ "Interceptor de servidor gRPC". 27 de febrero de 2023.
- ^ "gRPC". grpc.io . Consultado el 24 de febrero de 2020 .
- ^ JamesNK. "Comparación de los servicios gRPC con las API HTTP". docs.microsoft.com . Consultado el 24 de febrero de 2020 .
- ^ "ezy en GitHub". GitHub .
- ^ "Documentación de Step CI".
- ^ "gRPC en Uber". 19 de mayo de 2021.
- ^ "gRPC". grpc.io . Consultado el 24 de febrero de 2020 .
- ^ "gRPC en Spotify" (PDF) . jfokus.se . Consultado el 12 de mayo de 2020 .
- ^ "Radar tecnológico de Zalando". opensource.zalando.com . Consultado el 8 de abril de 2021 .
- ^ "Cómo migramos Dropbox de Nginx a Envoy". Dropbox.Tech . Consultado el 30 de octubre de 2020 .
- ^ "u-bmc". GitHub.com . 5 de octubre de 2022.
- ^ Nigmatullin, Ruslan; Ivanov, Alexey (8 de enero de 2019). «Courier: migración de Dropbox a gRPC» . Consultado el 9 de enero de 2019 .
Enlaces externos
- Página de inicio de gRPC
- gRPC – github.com
- gRPC – opensource.google.com