gRPC Server
gRPC Server
Section titled “gRPC Server”go-zero wraps the standard gRPC server with resilience, service registration, and tracing built in.
Define Proto
Section titled “Define Proto”syntax = "proto3";package greeter;option go_package = "./greeter";
message SayHelloReq { string name = 1; }message SayHelloResp { string message = 1; }
service Greeter { rpc SayHello(SayHelloReq) returns(SayHelloResp);}Generate Code
Section titled “Generate Code”goctl rpc protoc greeter.proto --go_out=. --go-grpc_out=. --zrpc_out=.Generated layout:
greeter/├── etc/greeter.yaml├── internal/│ ├── config/config.go│ ├── logic/sayhellologic.go│ ├── server/greeterserver.go│ └── svc/servicecontext.go├── greeter/ # protobuf generated└── greeter.goImplement Logic
Section titled “Implement Logic”func (l *SayHelloLogic) SayHello(in *greeter.SayHelloReq) (*greeter.SayHelloResp, error) { return &greeter.SayHelloResp{Message: "Hello " + in.Name}, nil}Configuration
Section titled “Configuration”Name: greeter.rpcListenOn: 0.0.0.0:8080Etcd: Hosts: [127.0.0.1:2379] Key: greeter.rpcgo run greeter.go