使用 Go 构建第一个 gRPC 服务

通过 Protocol Buffers 定义服务,生成 Go 代码并实现客户端与服务端,完成首个 gRPC 示例。

新建一个文件夹hello,分别创建pb,server,client三个文件夹

编写proto

新建hello.proto, 简单打个招呼吧

proto
syntax = "proto3";

option go_package = "hello/pb;pb";

package pb;

message HelloRequest {
  string name = 1;
}

message HelloResponse {
  string message = 1;
}

service HelloService {
  rpc SayHello (HelloRequest) returns (HelloResponse);
}

执行protoc命令行生成go代码

bash
protoc --go_out=. --go-grpc_out=. hello/pb/hello.proto

编写server端代码

分为四步:

  1. 创建tcp连接
  2. 创建grpc服务
  3. 注册服务
  4. 启动服务

代码

编写client端代码

分为三步:

  1. 创建grpc连接,与server端连接
  2. 创建client客户端对象
  3. 在本地直接调用服务端方法

代码

gRPC Metadata 的传递与使用
MCP Server 基础概念与入门实践