Golang GRPC-Installation

WBOY
Freigeben: 2023-05-16 13:27:09
Original
859 Leute haben es durchsucht

Golang ist eine sehr beliebte Programmiersprache, die für ihre hervorragende Parallelität und Leistung weithin bekannt ist. Mit dem Aufkommen von Cloud Computing und Microservices-Architektur ist gRPC in letzter Zeit in der Entwicklerwelt immer beliebter geworden. gRPC ist ein leistungsstarkes, universelles Open-Source-RPC-Framework, das von Google entwickelt und gefördert wird. Es unterstützt mehrere Sprachen und bietet eine starke Erweiterbarkeit, was es zu einem der bevorzugten Frameworks für die Erstellung verteilter Anwendungen macht. In diesem Artikel erfahren Sie, wie Sie gRPC in Golang installieren und schnell loslegen.

Schritt 1: Protokollpuffer installieren

Um mit der Verwendung von gRPC zu beginnen, müssen Sie zunächst Protokollpuffer installieren. Protokollpuffer sind ein intuitives, strukturiertes Datenserialisierungsformat, mit dem Sie Daten problemlos zwischen verschiedenen Anwendungen übergeben und speichern können. Protokollpuffer unterstützen mehrere Programmiersprachen, darunter Java, C++ und Golang.

Um Protocol Buffers in Golang zu installieren, gehen Sie bitte wie folgt vor:

Schritt 1: Holen Sie sich Protocol Buffers von GitHub

Protocol Buffers in Golang Das ist es über ein GitHub-Repository verteilt. Zuerst müssen Sie den Protocol Buffers-Quellcode von GitHub beziehen. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

$ go get -u github.com/golang/protobuf/protoc-gen-go
Nach dem Login kopieren

Schritt 2: Protokollpuffer installieren

Die Installation von Protokollpuffern erfordert eine Paketverwaltung wie Homebrew oder einen großen Linux-Paketmanager (z. B lecker) Gerät. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

Homebrew

$ brew install protobuf
Nach dem Login kopieren

Linux

$ yum install protobuf
Nach dem Login kopieren

Schritt 2: gRPC installieren

In der Installation After Protocol Buffers können Sie nun gRPC installieren. In Golang können Sie gRPC mit dem Befehl go get aus einem GitHub-Repository installieren. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

$ go get -u google.golang.org/grpc
Nach dem Login kopieren

Dieser Befehl lädt das gRPC-Framework und die zugehörigen Abhängigkeiten herunter und installiert es.

Schritt 3: gRPC verwenden

Nachdem Sie die Installationsschritte von gRPC abgeschlossen haben, können Sie mit der Verwendung in Golang beginnen. Als Nächstes sehen wir uns ein einfaches Beispiel an, das Ihnen zeigt, wie Sie gRPC mit Golang verwenden.

Schritt 1: Erstellen Sie eine .proto-Datei

In diesem Beispiel erstellen wir eine .proto-Datei mit dem Namen „hello.proto“, die einen einfachen gRPC-Dienstendpunkt enthält :

syntax = "proto3";
package hello;

// 定义HelloRequest消息
message HelloRequest {
  string name = 1;
}

// 定义HelloResponse消息
message HelloResponse {
  string message = 1;
}

// 定义Hello服务
service Hello {
  // 定义SayHello方法
  rpc SayHello (HelloRequest) returns (HelloResponse);
}
Nach dem Login kopieren

In dieser .proto-Datei definieren wir einen gRPC-Dienst namens „Hello“, der eine Methode namens „SayHello“ enthält. Diese Methode empfängt eine Nachricht vom Typ „HelloRequest“ vom Client und gibt eine Antwort vom Typ „HelloResponse“ zurück.

Schritt 2: gRPC-Code generieren

Nachdem Sie die .proto-Datei erstellt haben, müssen Sie den Protocol Buffers-Compiler verwenden, um Golang-Code zu generieren. Öffnen Sie dazu ein Terminal und führen Sie den folgenden Befehl aus:

$ protoc --go_out=plugins=grpc:. hello.proto
Nach dem Login kopieren

Dieser Befehl generiert eine Datei mit dem Namen „hello.pb.go“, die die Nachricht und den Golang-Code für den Dienst enthält.

Schritt 3: Implementieren Sie den gRPC-Dienst

Da Sie nun den gRPC-Code von Golang generiert haben, können Sie mit der Implementierung Ihres gRPC-Dienstes beginnen. Das Folgende ist ein einfaches Beispiel:

package main

import (
    "context"
    "log"
    "net"

    "google.golang.org/grpc"
    pb "path/to/hello.pb.go"
)

type server struct{}

func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) {
    log.Printf("Received: %v", in.GetName())
    return &pb.HelloResponse{Message: "Hello " + in.GetName()}, nil
}

func main() {
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
        log.Fatalf("failed to listen: %v", err)
    }
    s := grpc.NewServer()
    pb.RegisterHelloServer(s, &server{})
    if err := s.Serve(lis); err != nil {
        log.Fatalf("failed to serve: %v", err)
    }
}
Nach dem Login kopieren

In diesem Beispiel definieren wir zunächst eine „Server“-Struktur und fügen ihr eine Methode namens „SayHello“ hinzu. Diese Methode empfängt die vom Client gesendete „HelloRequest“-Nachricht und gibt eine „HelloResponse“-Nachricht zurück. Schließlich stellen wir auch eine Funktion namens „main“ bereit, die den gRPC-Dienst startet und Portnummer 50051 überwacht.

Schritt 4: Führen Sie den gRPC-Dienst aus

Da Sie nun die Implementierung des gRPC-Dienstes abgeschlossen haben, können Sie den Dienst im Terminal starten:

$ go run main.go
Nach dem Login kopieren
# 🎜🎜#Fazit

gRPC ist ein Open-Source-Allzweck-RPC-Framework, das weit verbreitet ist. In Golang können Sie gRPC in wenigen einfachen Schritten installieren und verwenden, was die Erstellung verteilter Anwendungen erleichtert. Wir hoffen, dass dieser Artikel Ihnen den Einstieg in gRPC erleichtert und Sie in die Lage versetzt, effiziente, skalierbare und zuverlässige verteilte Dienste aufzubauen.

Das obige ist der detaillierte Inhalt vonGolang GRPC-Installation. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage