gRPC C++ Leitfaden: Vollständiges Tutorial mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

gRPC C++ Leitfaden: Vollständiges Tutorial mit Beispielen

Willkommen bei PythonLib! In diesem Artikel tauchen wir tief in die gRPC C++ Bibliothek ein – ein leistungsstarkes Framework für die Entwicklung hochperformanter, verteilter Systeme. Ob Sie Microservices, Client-Server-Anwendungen oder Echtzeitsysteme entwickeln, gRPC wird zu Ihrem unverzichtbaren Werkzeug. Wir behandeln die Installation, die wichtigsten Klassen und Methoden, schreiben funktionierende Beispiele und geben Optimierungstipps.

1. Was ist gRPC C++ und warum brauchen Sie es?

gRPC (gRPC Remote Procedure Calls) ist ein modernes, hochperformantes Framework für entfernte Prozeduraufrufe, entwickelt von Google. Es nutzt HTTP/2 für den Transport und Protocol Buffers (protobuf) zur Datenserialisierung. Die gRPC C++ Bibliothek bietet eine native API für C++ und ermöglicht die Erstellung effizienter und skalierbarer Dienste.

Warum ist das wichtig? Im Gegensatz zu traditionellen REST-APIs auf Basis von JSON/HTTP/1.1 bietet gRPC:
- Hohe Leistung: Das binäre Protobuf-Protokoll ist schneller und kompakter als JSON.
- Starke Typisierung: Dienstverträge werden in .proto-Dateien definiert, was Laufzeitfehler vermeidet.
- Streaming-Unterstützung: Daten können in Echtzeit übertragen werden (Server-, Client- oder bidirektionales Streaming).
- Automatische Codegenerierung: Aus .proto-Dateien werden Server- und Client-Klassen generiert.

gRPC C++ ist ideal für: Microservice-Architekturen, mobile Backends, IoT-Systeme, Finanzanwendungen und überall dort, wo Geschwindigkeit und Zuverlässigkeit entscheidend sind.

2. Installation von gRPC C++

Die Installation von gRPC C++ erfordert entweder das Kompilieren aus dem Quellcode oder die Verwendung des Paketmanagers vcpkg. Wir empfehlen vcpkg für eine einfachere Handhabung.

Methode 1: Installation mit vcpkg (empfohlen)

# vcpkg klonen
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg

# vcpkg installieren (Windows: bootstrap-vcpkg.bat)
./bootstrap-vcpkg.sh

# gRPC installieren (beinhaltet protobuf)
./vcpkg install grpc

# Mit CMake integrieren
./vcpkg integrate install

Methode 2: Kompilieren aus dem Quellcode (Linux/macOS)

# Abhängigkeiten installieren
sudo apt-get install build-essential autoconf libtool pkg-config cmake git

# Repository klonen
git clone --recurse-submodules -b v1.62.0 https://github.com/grpc/grpc
cd grpc

# Kompilieren
mkdir -p cmake/build
cd cmake/build
cmake ../.. -DgRPC_INSTALL=ON -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install

Wichtig: Stellen Sie nach der Installation sicher, dass das Tool protoc (Protobuf-Compiler) im PATH verfügbar ist.

3. Schnellstart: Ein minimales Beispiel

Wir erstellen einen einfachen "Greeter"-Dienst (Begrüßung).

Schritt 1: .proto-Datei definieren

Erstellen Sie die Datei hello.proto:

syntax = "proto3";

package helloworld;

// Dienst definieren
service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// Anfrage-Nachricht
message HelloRequest {
  string name = 1;
}

// Antwort-Nachricht
message HelloReply {
  string message = 1;
}

Schritt 2: C++-Code generieren

protoc --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` hello.proto
protoc --cpp_out=. hello.proto

Es werden die Dateien erstellt: hello.pb.h, hello.pb.cc, hello.grpc.pb.h, hello.grpc.pb.cc.

Schritt 3: Server schreiben (server.cpp)

#include <iostream>
#include <memory>
#include <string>

#include <grpcpp/grpcpp.h>
#include "hello.grpc.pb.h"

using grpc::Server;
using grpc::ServerB                    

Empfehlungen