Heim > Backend-Entwicklung > Golang > Wie greife ich über eine einzige Verbindung auf mehrere gRPC-Dienste zu?

Wie greife ich über eine einzige Verbindung auf mehrere gRPC-Dienste zu?

Mary-Kate Olsen
Freigeben: 2024-11-03 19:28:29
Original
933 Leute haben es durchsucht

How to Access Multiple gRPC Services Over a Single Connection?

Zugriff auf mehrere gRPC-Dienste über eine einzige Verbindung

Warum für jeden gRPC-Dienst einen anderen Socket wählen?

Beim Zugriff auf gRPC-Dienste, die auf demselben ausgeführt werden Server ist es nicht erforderlich, für jeden Dienst separate Verbindungen herzustellen. Ein einziger grpc.ClientConn kann für den Zugriff auf alle Dienste verwendet werden.

Wie teile ich eine Verbindung?

Um eine Verbindung freizugeben, erstellen Sie einen grpc.ClientConn mit dem gewünschten Endpunkt und übergeben Sie ihn an den pb.New*Client()-Funktionen für jeden Dienst, den Sie verwenden möchten. Dadurch können sie dieselben Verbindungen nutzen.

<code class="go">cc, err := grpc.Dial("localhost:6000", grpc.WithInsecure())
if err != nil {
    log.Fatal(err)
}
c1 := pb.NewSubscriberServiceClient(cc)
c2 := pb.NewDropperServiceClient(cc)</code>
Nach dem Login kopieren

Verwenden Sie eine Schnittstelle zum Kombinieren von Client-Implementierungen?

Obwohl Sie eine Schnittstelle erstellen könnten, um clientseitige gRPC-Funktionen für mehrere Dienste zu kombinieren, ist die Der generierte Code in pb.go übernimmt alle wesentlichen Vorgänge. Die Implementierung neuer Funktionen ist nur für bestimmte benutzerdefinierte Logik erforderlich.

Für Dienste mit eindeutigen Methodennamen können Sie eine praktische Struktur definieren, um ihre Clients zu bündeln:

<code class="go">type SubscriberDropper struct {
    pb.SubscriberServiceClient
    pb.DropperServiceClient
}</code>
Nach dem Login kopieren

Zugriff auf mehrere gRPC-Dienste über a Eine einzelne Verbindung vereinfacht die clientseitige Implementierung und verbessert die Wartbarkeit des Codes.

Das obige ist der detaillierte Inhalt vonWie greife ich über eine einzige Verbindung auf mehrere gRPC-Dienste zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage