BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités gRPC 1.0 est prêt pour la production

gRPC 1.0 est prêt pour la production

Google a publié gRPC 1.0, le considérant comme stable et prêt pour la production.

gRPC a commencé comme un projet interne chez Google appelé Stubby, utilisé pour la communication par certains de leurs services internes. Google a publié le framework en open source il y a 18 mois avec l'espoir que d'autres l'embrassent et l'utilisent lors de la consommation de services Google, pour la communication avec d'autres services via Internet ou pour leurs produits internes.

gRPC est une plate-forme neutre de RPC qui utilise Protocole Buffers IDL pour définir les services end-point et le message payload à transférer, puis générer des stubs pour plusieurs langues. gRPC prend en charge 10 langages : C, C++, C#, Go, Java (y compris Java/Android), Node.js, Objective-C, PHP, Python et Ruby ; sur Linux, Mac et Windows. Il existe des implémentations natives en C, Go et Java, et des wrappers autour de la bibliothèque C pour les autres langues. Un dashboard sur les performances a été publié par Google pour afficher le temps de latence des différentes communications gRPC entre deux instances VM au sein du même datacenter. Pour les messages sécurisés synchrones et unaires, le graphique montre à base de Netperf des résultats à environ 100 us, tandis que les implémentations en C++, Java et C# prennent environ 200-300 us, alors que Ruby, Python et Node.js sont respectivement à 700, 900 et 1.100 us.

Les messages à transférer sont sérialisés dans un format binaire en utilisant Protocol Buffers 3.0 qui est destiné à fournir de meilleures performances que les formats texte. Par rapport à JSON, protobuf peut réduire la taille d'un message en deux et utiliser le tiers du temps pour sérialiser/désérialiser, selon Kelsey Hightower, un ingénieur chez Google.

À côté des RPCs unaires qui se composent d'une demande suivie par une réponse, gRPC utilise HTTP/2 pour fournir du streaming uni ou bidirectionnel entre le client et le serveur. La communication peut être synchrone ou asynchrone et prend en charge l'authentification via SSL/TLS ou OAuth2 (avec L’API Google).

Le processus d'installation a été simplifié en fournissant des binaires gRPC via CocoaPods, gem, Gradle, Maven, npm, NuGet, pecl, pip, ou des images Docker.

Selon Google, un certain nombre de sociétés, y compris Cisco, CoreOS, Juniper, Netflix et Square, utilisent gRPC en interne.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT