Definition

gRPC

gRPC ist ein leistungsfähiges Open Source Framework, das von Google entwickelt wurde, um Remote Procedure Calls (RPC) zu verarbeiten. gRPC ist Googles Ansatz für eine Client-Server-Anwendung. Es ermöglicht die transparente Kommunikation zwischen Client- und Serveranwendungen und vereinfacht so den Prozess für Entwickler, vernetzte Systeme zu erstellen. Seit der Veröffentlichung im August 2016 wird gRPC von Unternehmen, Start-ups und Open-Source-Projekten weltweit eingesetzt.

gRPC kann in jeder Umgebung ausgeführt werden und verbindet Dienste in und zwischen Rechenzentren mit optionaler Unterstützung für Tracing, Zustandsprüfung, Lastausgleich und Authentifizierung. gRPC kann auch verwendet werden, um Mobilgeräte, mobile Apps und Browser mit Backend-Diensten zu verbinden.

Entwickler nutzen gRPC auf der letzten Meile der Datenverarbeitung in mobilen und Web-Clients, da es Bibliotheken für Android und iOS generieren kann. Darüber hinaus verwendet es HTTP/2 als Transportmittel, so dass es Firewalls und Proxys überwinden kann.

Unterstützte Programmiersprachen

gRPC-Clients und -Server können in verschiedenen Umgebungen ausgeführt werden und miteinander kommunizieren, einschließlich des Desktops eines Nutzers und der Server von Google. Darüber hinaus können gRPC-Clients in jeder der von gRPC unterstützten Sprachen geschrieben werden, darunter:

So kann ein Entwickler beispielsweise einen gRPC-Server in Java mit Clients in Python, Ruby oder Go erstellen. Da die neuesten Google-Programmierschnittstellen (APIs) über gRPC-Versionen ihrer Schnittstellen verfügen, können Entwickler außerdem Google-Funktionen in ihre Anwendungen integrieren.

Verwendung von gRPC

gRPC basiert wie andere RPC-Systeme auf der Idee, einen Dienst zu definieren, das heißt die Methoden, die aus der Ferne aufgerufen werden können, mit ihren Parametern und Rückgabetypen festzulegen. Mit gRPC können Entwickler jedoch anspruchsvollere Technologien verwenden, die effizient und skalierbar sind, wie HTTP/2 und Streams. Da es technologieunabhängig ist, kann es von Servern und Clients in verschiedenen Programmiersprachen verwendet werden und mit diesen interagieren.

gRPC basiert auch auf Protokollpuffern, die auch Protobufs genannt werden. Protobufs sind Googles Tool zur Sequenzierung strukturierter Daten, das eine vorhersehbare und analysierbare Kommunikation und Datenspeicherung ermöglicht.

Arten von gRPC

Mit gRPC können Entwickler vier Arten von Servicemethoden definieren:

  • Unary RPC – Der Client sendet eine Anfrage an den Server und erhält eine Antwort zurück, genau wie bei einem normalen Funktionsaufruf.
  • Server Streaming – Der Client sendet eine Anfrage an den Server und erhält einen Stream von Nachrichten zurück. Der Client liest aus dem zurückgegebenen Stream, bis keine Nachrichten mehr vorhanden sind. Dabei garantiert gRPC die Reihenfolge der Nachrichten innerhalb eines einzelnen RPC-Aufrufs.
  • Client Streaming – Das Gegenteil von Server-Streaming: Der Client schreibt eine Folge von Nachrichten und sendet sie über einen bereitgestellten Stream an den Server. Sobald der Client mit dem Schreiben der Nachrichten fertig ist, wartet er darauf, dass der Server sie liest und seine Antworten zurückschickt. Auch hier garantiert gRPC die Reihenfolge der Nachrichten innerhalb eines einzelnen RPC-Aufrufs.
  • Bidirektionales Streaming – Beide Seiten senden eine Folge von Nachrichten über einen Lese-Schreib-Stream. Die beiden Streams arbeiten unabhängig voneinander, so dass die Clients und Server in beliebiger Reihenfolge lesen und schreiben können. Zum Beispiel liest der Server eine Nachricht und schreibt dann eine Antwort. Oder der Server wartet auf den Empfang aller Client-Nachrichten, bevor er seine Antworten schreibt. gRPC behält die Reihenfolge der Nachrichten in jedem Stream bei.
Diese Definition wurde zuletzt im Dezember 2021 aktualisiert

Erfahren Sie mehr über Softwareentwicklung