gRPC 教程项目文档
grpc-tutorialgRPC tutorial for Japanese readers项目地址:https://gitcode.com/gh_mirrors/gr/grpc-tutorial
本文档基于开源项目 ymmt2005/grpc-tutorial 编写,旨在提供项目的详细介绍和使用指南。
1. 项目的目录结构及介绍
项目的目录结构如下:
grpc-tutorial/
├── client/
│ ├── main.go
│ └── ...
├── server/
│ ├── main.go
│ └── ...
├── proto/
│ ├── service.proto
│ └── ...
├── Makefile
├── README.md
└── ...
目录结构介绍
client/
: 包含客户端的实现代码。main.go
: 客户端的主启动文件。
server/
: 包含服务端的实现代码。main.go
: 服务端的主启动文件。
proto/
: 包含协议缓冲区(Protocol Buffers)的定义文件。service.proto
: 定义服务的接口和消息格式。
Makefile
: 用于构建和运行项目的 Makefile 文件。README.md
: 项目的说明文档。
2. 项目的启动文件介绍
服务端启动文件
服务端的启动文件位于 server/main.go
,主要功能是启动 gRPC 服务并监听指定的端口。
package main
import (
"log"
"net"
"google.golang.org/grpc"
pb "github.com/ymmt2005/grpc-tutorial/proto"
)
func main() {
lis, err := net.Listen("tcp", ":50051")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
s := grpc.NewServer()
pb.RegisterYourServiceServer(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/main.go
,主要功能是连接到 gRPC 服务并调用服务端的方法。
package main
import (
"log"
"google.golang.org/grpc"
pb "github.com/ymmt2005/grpc-tutorial/proto"
)
func main() {
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
log.Fatalf("did not connect: %v", err)
}
defer conn.Close()
c := pb.NewYourServiceClient(conn)
// 调用服务端的方法
// ...
}
3. 项目的配置文件介绍
项目中没有显式的配置文件,但可以通过环境变量或命令行参数来配置服务端和客户端的行为。例如,可以通过环境变量设置监听的端口:
export GRPC_PORT=50051
然后在 server/main.go
中读取该环境变量:
port := os.Getenv("GRPC_PORT")
if port == "" {
port = "50051"
}
lis, err := net.Listen("tcp", ":"+port)
通过这种方式,可以灵活地配置项目的运行参数。
以上是基于 ymmt2005/grpc-tutorial 项目的详细文档。希望对您有所帮助!
grpc-tutorialgRPC tutorial for Japanese readers项目地址:https://gitcode.com/gh_mirrors/gr/grpc-tutorial