Go gRPC Server Setup
Create a gRPC server in Go with protobuf service definitions, interceptor middleware for logging and auth, graceful shutdown, health checks, and reflection.
Code
package main
import (
"context"
"log"
"net"
"google.golang.org/grpc"
"google.golang.org/grpc/reflection"
)
type server struct{ UnimplementedGreeterServer }
func (s *server) SayHello(ctx context.Context, in *HelloRequest) (*HelloReply, error) {
return &HelloReply{Message: "Hello " + in.GetName()}, nil
}
func main() {
lis, _ := net.Listen("tcp", ":50051")
s := grpc.NewServer()
RegisterGreeterServer(s, &server{})
reflection.Register(s)
log.Println("gRPC server on :50051")
s.Serve(lis)
}