gRPC ( llamadas a procedimientos remotos gRPC [1] ) es un sistema de llamadas a procedimientos remotos (RPC) de código abierto desarrollado inicialmente en Google en 2015 como la próxima generación de la infraestructura RPC Stubby. [2] [3] Utiliza HTTP / 2 para el transporte, Protocol Buffers como lenguaje de descripción de la interfaz y proporciona características como autenticación, transmisión bidireccional y control de flujo , enlaces de bloqueo o no bloqueo, y cancelación y tiempos de espera. Genera enlaces de servidor y cliente multiplataforma para muchos idiomas. Los escenarios de uso más comunes incluyen la conexión de servicios en unarquitectura de estilo de microservicios , o conectar clientes de dispositivos móviles a servicios de backend. [3]
Desarrollador (es) | |
---|---|
Versión inicial | Agosto de 2016 |
Lanzamiento estable | 1.35.0 |
Repositorio | |
Escrito en | Android Java, C # , C ++ , Dart , Go , Java , Kotlin / JVM, Node.js , Objective-C, PHP , Python , Ruby |
Tipo | Marco de llamada a procedimiento remoto |
Licencia | Licencia Apache 2.0 |
Sitio web | grpc |
El uso complejo de HTTP / 2 de gRPC hace que sea imposible implementar un cliente de gRPC en el navegador, en lugar de eso requiere un proxy. [4]
Autenticación
gRPC admite el uso de TLS y autenticación basada en tokens. La conexión a los servicios de Google debe utilizar TLS. Hay dos tipos de credenciales: credenciales de canal y credenciales de llamada. [5]
Codificación
gRPC utiliza búferes de protocolo para codificar los datos. A diferencia de las API HTTP con JSON, tienen una especificación más estricta. Debido a que tiene una sola especificación, gRPC elimina el debate y ahorra tiempo al desarrollador porque gRPC es consistente en todas las plataformas e implementaciones. [6]
Adopción
Varias organizaciones diferentes han adoptado gRPC, como Square , Netflix , IBM , CoreOS , Docker , CockroachDB , Cisco , Juniper Networks , [7] Spotify , [8] Zalando [9] y Dropbox . [10]
El proyecto de código abierto u-bmc usa gRPC para reemplazar IPMI . [11] El 8 de enero de 2019, Dropbox anunció que la próxima versión de "Courier", su marco 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 RPC personalizados existentes. [12]
Ver también
- Búferes de protocolo
- Apache Thrift
- Apache Avro
- JSON-RPC
- XML-RPC
Referencias
- ^ "Preguntas frecuentes" . gRPC .
- ^ "Presentamos gRPC, un nuevo marco de código abierto HTTP / 2 RPC" .
- ^ a b "Acerca de gRPC" . gRPC . Consultado el 25 de mayo de 2021 .
- ^ "El estado de gRPC en el navegador" . gRPC .
- ^ "gRPC" . grpc.io . Consultado el 24 de febrero de 2020 .
- ^ JamesNK. "Compare los servicios de gRPC con las API de HTTP" . docs.microsoft.com . Consultado el 24 de febrero de 2020 .
- ^ "gRPC" . grpc.io . Consultado el 24 de febrero de 2020 .
- ^ "gRPC en Spotify" (PDF) . jfokus.se . Consultado el 12 de mayo de 2020 .
- ^ "Zalando Tech Radar" . 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 .
- ^ Nigmatulina, 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