1. 写 gRPC 服务
简单项目结构
1.1 proto 文件
// hello_world.proto
syntax = "proto3";
package hello_world;
option go_package = "github.com/boknxu/grpc-server/hello_world";
service HelloWorld {
rpc SayHello (SayHelloRequest) returns (SayHelloResponse) {}
}
message SayHelloRequest {
string Name = 1;
}
message SayHelloResponse {
string Msg = 1;
}
1.2 编译 proto
protoc \
-I=. \
--go_out=. \
--go_opt=paths=source_relative \
--go-grpc_out=. \
--go-grpc_opt=paths=source_relative \
*.proto
1.3 写 grpc 函数业务逻辑
// service.go
package hello_world
import "google.golang.org/grpc"
type HelloWorldService struct {
*UnimplementedHelloWorldServer
}
func RegisterService(server *grpc.Se