Einführung in gRPC

Home » DE » Blog » Einführung in gRPC


* Dieser Beitrag ist der erste in einer Reihe über gRPC.


In den 90er Jahren, als ich in diese Welt eintrat, konnte man, wenn man Glück hatte und einen Computer besaß, nur lokal arbeiten, seine installierten Spiele spielen oder seine Dokumente in Word Perfect schreiben.

Heutzutage ist das Gegenteil der Fall. Fast alle Geräte sind in irgendeiner Form mit einem Netz verbunden, und alle neuen Entwicklungen konzentrieren sich auf die Cloud. Dies ermöglicht es uns, weniger leistungsstarke Maschinen zu haben, und die gesamte Rechenleistung wird auf diese Megamaschinen übertragen, die Amazon, Google und Microsoft haben ... aber das ist eine andere Geschichte.

Neue Entwicklungen werden mit dem Schwerpunkt auf der Cloud durchgeführt.

Die heutige Software besteht aus Diensten, die mit anderen Diensten interagieren, um ein mehr oder weniger komplexes Ziel zu erreichen. Diese Dienste sind in der Regel klein und haben eine sehr spezifische Funktionalität, weshalb sie als Microservices bezeichnet werden.

Die Kommunikation zwischen Microservices erfolgt über Computernetzwerke, und wie Menschen kommunizieren auch Prozesse miteinander, indem sie sich gegenseitig Nachrichten schicken. Software, die auf Microservices basiert, wird als verteilte Software bezeichnet. Es hat, wie alles im Leben, Vor- und Nachteile, über die ich Ihnen berichten werde.

Prozesse können Nachrichten synchron oder asynchron austauschen:

  • Synchrone Kommunikation: Der Client-Prozess sendet eine Nachricht über das Netz an den Server-Prozess und wartet auf eine Antwort. Ein Beispiel für den synchronen Informationsaustausch im täglichen Leben wäre ein Telefongespräch. Eine Person stellt eine Frage und die andere Person antwortet. All dies ist synchronisiert und geschieht in Echtzeit.

  • Asynchrone Kommunikation: Prozesse tauschen asynchrone Nachrichten über einen Vermittler, den so genannten Event Broker, aus. Ein Beispiel wäre der Austausch von Informationen über Whatsapp. Ich schicke Ihnen eine Nachricht und Sie antworten, wenn Sie können.

Es gibt keine Option, die besser ist als eine andere. Sie müssen nur diejenige auswählen, die für Ihren Anwendungsfall am besten geeignet ist.

Die meisten Anwendungen kommunizieren heute synchron, d. h. sie senden eine Anfrage und warten auf eine mehr oder weniger unmittelbare Antwort. Microservices werden als RESTful-Dienste aufgebaut, die Ressourcen implementieren, auf die über Netzwerkaufrufe und unter Verwendung des HTTP/2-Protokolls zugegriffen werden kann und die ihren Zustand ändern. Diese Dienste werden als APIs (Application Programming Interface) bezeichnet.

Für die meisten Anwendungsfälle sind RESTful-Dienste recht umständlich, ineffizient und fehleranfällig. In vielen Fällen muss die Kommunikation zwischen Ihren Prozessen hoch skalierbar und lose gekoppelt sein, d. h. effizienter als RESTful-Dienste. Hier kommt gRPC ins Spiel, das nichts anderes ist als eine prozessübergreifende Kommunikationsmethode für den Aufbau von verteilten Anwendungen und Microservices.

Google hat gRPC entwickelt, und Sie denken vielleicht, dass sich das g in gRPC auf Google bezieht, aber die Bedeutung des g hat sich mit jeder Version geändert. Die aktuelle Version ist 1.41, und in dieser Version steht das g in gRPC für "Ziege". Alle Bedeutungen des g für die verschiedenen Versionen finden Sie hier.

Im nächsten Beitrag erkläre ich, was gRPC ist und gebe Ihnen ein Beispiel.

Wenn Sie mehr über gRPC erfahren möchten, finden Sie hier einige Bücher, die Sie interessieren könnten:



Learning HTTP/2: A Practical Guide for Beginners

Stephen Ludin


gRPC: Up and Running: Building Cloud Native Applications with Go and Java for Docker and Kubernetes

Kasun Indrasiri