Was ist gRPC?

Home » DE » Blog » Was ist gRPC?


* Dieser Beitrag ist der zweite in der Serie über gRPC


Was ist gRPC?

Wenn Sie eine gRPC-Anwendung entwickeln, müssen Sie als erstes eine Dienstschnittstelle definieren. Die Definition der Serviceschnittstelle enthält Informationen darüber, wie Ihr Dienst von Verbrauchern konsumiert werden kann, welche Methoden Sie Verbrauchern erlauben, remote aufzurufen, welche Methodenparameter und Nachrichtenformate beim Aufrufen dieser Methoden zu verwenden sind usw. Die Sprache, in der wir die Dienstdefinition spezifizieren, ist als Interface Definition Language (IDL) bekannt, und in gRPC werden Protokollpuffer verwendet. Darüber hinaus wird HTTP/2 für den Transport der Informationen verwendet.

Mithilfe von Protokollpuffern können Sie serverseitigen Code generieren, der als Serverskelett bekannt ist und die serverseitige Logik durch Bereitstellung von Kommunikationsabstraktionen auf niedriger Ebene vereinfacht. Sie können auch Client-seitigen Code generieren, der als Client-Stub bekannt ist und die Client-seitige Kommunikation durch Abstraktionen vereinfacht, um die Kommunikation auf niedriger Ebene für verschiedene Programmiersprachen zu verbergen. Methoden, die in der Definition der Serviceschnittstelle angegeben sind, können von der Client-Seite so einfach aufgerufen werden, als ob es sich um einen lokalen Funktionsaufruf handeln würde. gRPC bewältigt alle Komplexitäten, die normalerweise mit der Durchsetzung strenger Servicekontrakte, der Datenserialisierung, der Netzwerkkommunikation, der Authentifizierung, der Zugriffskontrolle, der Beobachtbarkeit usw. verbunden sind.

Ich möchte Ihnen ein Beispiel zeigen, damit Sie besser verstehen, wie gRPC funktioniert. Stellen Sie sich vor, Sie bauen ein E-Commerce-System für Getränke auf, das aus mehreren Microservices besteht. Sie möchten, dass einer von ihnen die Details zu den Getränken liefert, die in Ihrer App verfügbar sind. Der DrinkInfo-Dienst ist so modelliert, dass er über das Netz als gRPC-Dienst zugänglich ist.

Die Definition des Dienstes wird in der Datei DrinkInfo.proto angegeben, die sowohl von der Server- als auch von der Client-Seite zur Erzeugung des Codes verwendet wird. In diesem Beispiel habe ich angenommen, dass der Verbraucher mit Node und der Server mit Python implementiert ist. Die Netzwerkkommunikation zwischen dem Dienst und dem Verbraucher erfolgt über HTTP/2.

Im nächsten Beitrag werde ich auf die Details dieser gRPC-Kommunikation eingehen.

Ich möchte diese Gelegenheit nutzen, um Ihnen einige Bücher zu empfehlen, die Sie interessieren könnten:



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