Qu'est-ce que le gRPC ?

Home » FR » Blog » Qu'est-ce que le gRPC ?


* Ce billet est le deuxième de la série sur le gRPC


Qu'est-ce que le gRPC ?

Lorsque vous développez une application gRPC, la première chose à faire est de définir une interface de service. La définition de l'interface du service contient des informations sur la manière dont votre service peut être consommé par les consommateurs, sur les méthodes que vous autorisez les consommateurs à appeler à distance, sur les paramètres de méthode et les formats de message à utiliser pour invoquer ces méthodes, etc. Le langage dans lequel nous spécifions la définition du service est connu sous le nom d'Interface Definition Language (IDL) et Protocol Buffers est utilisé dans gRPC. En outre, HTTP/2 est utilisé pour le transport des informations.

Grâce aux tampons de protocole, vous pouvez générer un code côté serveur, appelé squelette de serveur, qui simplifie la logique côté serveur en fournissant des abstractions de communication de bas niveau. Vous pouvez également générer du code côté client, connu sous le nom de stub client, qui simplifie la communication côté client avec des abstractions pour masquer la communication de bas niveau pour différents langages de programmation. Les méthodes spécifiées dans la définition de l'interface du service peuvent être invoquées à distance par le client aussi facilement qu'une invocation de fonction locale. gRPC gère toutes les complexités normalement associées à l'application de contrats de service stricts, à la sérialisation des données, à la communication réseau, à l'authentification, au contrôle d'accès, à l'observabilité, etc.

Laissez-moi vous montrer un exemple pour vous permettre de mieux comprendre le fonctionnement de gRPC. Imaginez que vous construisiez un commerce électronique de boissons, composé de plusieurs microservices. Vous voulez que l'un d'eux fournisse les détails des boissons disponibles dans votre application. Le service DrinkInfo est modélisé de manière à être exposé sur le réseau comme un service gRPC.

La définition du service est spécifiée dans le fichier DrinkInfo.proto, qui est utilisé à la fois par le serveur et le client pour générer le code. Dans cet exemple, j'ai supposé que le consommateur est mis en œuvre en utilisant Node et le serveur est mis en œuvre en utilisant Python. La communication réseau entre le service et le consommateur se fait par HTTP/2.

Dans le prochain billet, j'entrerai dans les détails de cette communication gRPC.

J'aimerais profiter de cette occasion pour vous recommander quelques livres qui pourraient vous intéresser :



Learning HTTP/2: A Practical Guide for Beginners

Stephen Ludin


Modern API Development with Spring and Spring Boot: Design highly scalable and maintainable APIs with REST, gRPC, GraphQL, and the reactive paradigm

Sourabh Sharma