go 学习 之 GRPC微服务示例
package main
import (
"context"
"log"
"net"
"google.golang.org/grpc"
)
// 定义一个简单的服务
type GreeterService struct{}
// 服务必须实现我们在proto文件中定义的接口
func (s *GreeterService) Greet(ctx context.Context, request *GreetRequest) (*GreetResponse, error) {
return &GreetResponse{Message: "Hello, " + request.Name}, nil
}
func main() {
// 创建一个监听端口的服务器
listener, err := net.Listen("tcp", ":50051")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
// 创建gRPC服务器
s := grpc.NewServer()
// 注册我们的服务
RegisterGreeterServiceServer(s, &GreeterService{})
log.Println("服务启动,等待客户端连接...")
// 服务器循环处理请求
if err := s.Serve(listener); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}
这段代码展示了如何使用Go语言和gRPC库来创建一个简单的gRPC服务器。它定义了一个服务,实现了在proto文件中定义的接口,并在指定端口监听来自客户端的请求。
评论已关闭