Golang は、その優れた同時実行性とパフォーマンスで広く知られている非常に人気のあるプログラミング言語です。最近、クラウド コンピューティングとマイクロサービス アーキテクチャの台頭により、開発者の世界では gRPC の人気が高まっています。 gRPC は、Google によって開発および推進されている、高性能のオープンソースの汎用 RPC フレームワークです。複数の言語をサポートし、強力な拡張性を備えているため、分散アプリケーションを構築するための好ましいフレームワークの 1 つとなっています。この記事では、Golang に gRPC をインストールし、すぐに使い始める方法を説明します。
gRPC の使用を開始するには、まずプロトコル バッファーをインストールする必要があります。プロトコル バッファーは、異なるアプリケーション間でデータを簡単に受け渡し、保存できるようにする直観的な構造化データのシリアル化形式です。プロトコル バッファーは、Java、C、Golang などの複数のプログラミング言語をサポートします。
Golang にプロトコル バッファーをインストールするには、次の手順を実行してください:
Golang のプロトコル バッファーは、GitHub リポジトリを通じて配布されます。まず、GitHub からプロトコル バッファーのソース コードを取得する必要があります。ターミナルを開いて次のコマンドを実行します。
$ go get -u github.com/golang/protobuf/protoc-gen-go
プロトコル バッファーをインストールするには、Homebrew などのパッケージ マネージャー、または大規模な Linux パッケージ マネージャー (たとえば、うーん)。ターミナルを開いて次のコマンドを実行します。
$ brew install protobuf
$ yum install protobuf
プロトコル バッファーをインストールした後、次のことが可能になります。 gRPCをインストールします。 Golang では、 go get コマンドを使用して GitHub リポジトリから gRPC をインストールできます。ターミナルを開き、次のコマンドを実行します。
$ go get -u google.golang.org/grpc
このコマンドは、gRPC フレームワークとその関連依存関係をダウンロードしてインストールします。
gRPC のインストール手順が完了したので、Golang での使用を開始できます。次に、Golang で gRPC を使用する方法を示す簡単な例を見ていきます。
この例では、単純な gRPC サービス エンドポイントを含む「hello.proto」という名前の .proto ファイルを作成します。
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); }
この .proto ファイルでは、「SayHello」という名前のメソッドを含む「Hello」という名前の gRPC サービスを定義します。このメソッドは、クライアントから「HelloRequest」タイプのメッセージを受信し、「HelloResponse」タイプの応答を返します。
.proto ファイルを作成した後、プロトコル バッファー コンパイラーを使用して Golang コードを生成する必要があります。これを行うには、ターミナルを開いて次のコマンドを実行します。
$ protoc --go_out=plugins=grpc:. hello.proto
このコマンドは、.proto ファイルの Golang コードで定義したメッセージとサービスを含む「hello.pb.go」という名前のファイルを生成します。
Golang の gRPC コードを生成したので、gRPC サービスの実装を開始できます。以下は簡単な例です:
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) } }
この例では、最初に「サーバー」構造を定義し、それに「SayHello」という名前のメソッドを追加します。このメソッドは、クライアントから送信された「HelloRequest」メッセージを受信し、「HelloResponse」メッセージを返します。最後に、gRPC サービスを開始してポート番号 50051 をリッスンする「main」と呼ばれる関数も提供します。
gRPC サービスの実装が完了したので、ターミナルでサービスを開始できます:
$ go run main.go
gRPC は、広く使用されているオープンソースの汎用 RPC フレームワークです。 Golang では、いくつかの簡単な手順で gRPC をインストールして使用できるため、分散アプリケーションの構築が容易になります。この記事が gRPC の使用を開始するのに役立ち、効率的でスケーラブルで信頼性の高い分散サービスを構築できるようになることを願っています。
以上がgolang grpcのインストールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。