gRPC-Go 项目教程
【免费下载链接】grpc-go 基于HTTP/2的gRPC的Go语言实现。 项目地址: https://gitcode.com/GitHub_Trending/gr/grpc-go
项目介绍
gRPC-Go 是 gRPC 的 Go 语言实现,基于 HTTP/2 的高性能开源通用 RPC 框架。它特别适用于移动设备和 HTTP/2 优先的场景。gRPC 允许客户端应用程序直接调用服务器应用程序上的方法,就像本地对象一样,使得分布式应用程序和服务的创建更加简单。
项目快速启动
安装 gRPC-Go
首先,确保你已经安装了 Go 语言的最新版本。然后,通过以下命令安装 gRPC-Go:
go get google.golang.org/grpc
创建一个简单的 gRPC 服务
-
定义 Protocol Buffers 文件
创建一个名为
helloworld.proto的文件,内容如下:syntax = "proto3"; package helloworld; service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} } message HelloRequest { string name = 1; } message HelloReply { string message = 1; } -
生成 Go 代码
使用 Protocol Buffers 编译器生成 Go 代码:
protoc --go_out=. --go-grpc_out=. helloworld.proto -
编写服务器代码
创建一个名为
server.go的文件,内容如下:package main import ( "context" "log" "net" pb "path/to/your/helloworld" "google.golang.org/grpc" ) type server struct { pb.UnimplementedGreeterServer } func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) { return &pb.HelloReply{Message: "Hello " + in.Name}, nil } func main() { lis, err := net.Listen("tcp", ":50051") if err != nil { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() pb.RegisterGreeterServer(s, &server{}) log.Printf("server listening at %v", lis.Addr()) if err := s.Serve(lis); err != nil { log.Fatalf("failed to serve: %v", err) } } -
编写客户端代码
创建一个名为
client.go的文件,内容如下:package main import ( "context" "log" "os" "time" pb "path/to/your/helloworld" "google.golang.org/grpc" ) const ( address = "localhost:50051" defaultName = "world" ) func main() { conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock()) if err != nil { log.Fatalf("did not connect: %v", err) } defer conn.Close() c := pb.NewGreeterClient(conn) name := defaultName if len(os.Args) > 1 { name = os.Args[1] } ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name}) if err != nil { log.Fatalf("could not greet: %v", err) } log.Printf("Greeting: %s", r.Message) } -
运行服务器和客户端
首先运行服务器:
go run server.go然后运行客户端:
go run client.go
应用案例和最佳实践
应用案例
gRPC-Go 广泛应用于微服务架构中,
【免费下载链接】grpc-go 基于HTTP/2的gRPC的Go语言实现。 项目地址: https://gitcode.com/GitHub_Trending/gr/grpc-go
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



