golang に gRPC をインストールする方法

PHPz
リリース: 2023-04-05 13:56:18
オリジナル
744 人が閲覧しました

近年、クラウド コンピューティングとビッグ データの急速な発展に伴い、マイクロサービス アーキテクチャを使用してアプリケーションを構築する企業が増えています。 gRPC は、マイクロサービス間の通信に広く使用されている効率的で最新の RPC フレームワークです。この記事では、この通信フレームワークをより便利に利用できるように、golang に gRPC をインストールする方法を紹介します。

  1. まず、golang 環境をインストールする必要があります。公式 Web サイト https://golang.org/dl/ から、お使いのオペレーティング システムに適したインストール パッケージをダウンロードできます。インストールが完了したら、次のコマンドを使用して、インストールが成功したかどうかを確認します。 #
    go version
    ログイン後にコピー
  2. バージョン情報「go version go1.14.4 darwin/amd64」のような応答が表示された場合は、インストールが成功したことを示します。

依存関係パッケージをダウンロードしてインストールします。 gRPC ではいくつかの依存関係ライブラリを使用する必要がありますが、ここでは golang のパッケージ管理ツール go mod を使用して、必要な依存関係パッケージを自動的にダウンロードして管理します。任意の空のディレクトリで、次のコマンドを実行します。
  1. go mod init example.com/hello
    go get google.golang.org/grpc
    ログイン後にコピー
  2. このうち、「example.com/hello」は一例ですので、任意の名前に置き換えてください。

gRPC サービスを作成します。 gRPC をインストールしたら、独自のサービスの作成を開始できます。クライアントに挨拶するためのグリーター サービスを作成するとします。プロジェクトのルート ディレクトリに 2 つのファイルgreeter.pb.go とgreeter.grpc.go を作成します。コマンドは次のとおりです:
  1. $ touch greeter.proto
    $ protoc --go_out=. --go-grpc_out=. greeter.proto
    ログイン後にコピー
  2. gRPC サービスの定義を記述するために、greeter.proto ファイルを作成します。 :
syntax = "proto3";

package helloworld;

// 定义服务接口
service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// 定义请求和响应结构体
message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}
ログイン後にコピー

protoc ファイルをコンパイルし、対応するgreeter.pb.go およびgreeter.grpc.go サービス ファイルを生成します。 protoc でコンパイルする場合、対応する pb ファイルと grpc ファイルを生成するために 2 つのパラメーター --go_out と --go-grpc_out を追加したことに注意してください。

gRPC クライアントを作成します。次に、定義したサービスを呼び出すクライアント コードを記述する必要があります。プロジェクトにgreetercli.goファイルを作成し、次のコードを記述します。
  1. package main
    
    import (
        "context"
        "log"
    
        "google.golang.org/grpc"
        pb "example.com/hello" // 这里是我们定义的服务包名
    
    )
    
    const (
        address     = "localhost:50051" // 服务端地址
        defaultName = "world"
    )
    
    func main() {
        // 和服务端建立连接
        conn, err := grpc.Dial(address, grpc.WithInsecure())
        if err != nil {
            log.Fatalf("did not connect: %v", err)
        }
        defer conn.Close()
    
        // 创建客户端
        c := pb.NewGreeterClient(conn)
    
        // 调用服务方法
        name := defaultName
        if len(os.Args) > 1 {
            name = os.Args[1]
        }
        r, err := c.SayHello(context.Background(), &pb.HelloRequest{Name: name}
        if err != nil {
            log.Fatalf("could not greet: %v", err)
        }
        log.Printf("Greeting: %s", r.Message)
    }
    ログイン後にコピー
  2. コードのコメントですでに明確に説明しているため、ここでは繰り返しません。

gRPC サービスを実行します。
  1. サーバーとクライアントのコードが完成したので、サービスを実行して見てみましょう。

greetercli.go と同じディレクトリで次のコマンドを実行します。

$ go run greetersrv.go
ログイン後にコピー

出力がない場合は、gRPC サービスがローカルで正常に開始されたことを意味します。次に、新しいターミナル ウィンドウでクライアントを実行します。

$ go run greetercli.go
Greeting: Hello world
ログイン後にコピー

ここでの出力結果は、定義した入力パラメータに従って調整できます。

これまで、この記事の内容は基本的に golang に gRPC をインストールするプロセス全体をカバーしてきたので、読者の役に立つことを願っています。もちろん、gRPC サービスを深く研究するには、さらに詳細と仕様を習得し、知識システムを継続的に改善および拡張する必要があります。

以上がgolang に gRPC をインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート