Go gRPC 示例项目教程
1. 项目的目录结构及介绍
go-grpc-examples/
├── client/
│ ├── main.go
│ └── ...
├── server/
│ ├── main.go
│ └── ...
├── proto/
│ ├── service.proto
│ └── ...
├── config/
│ ├── config.yaml
│ └── ...
├── README.md
└── ...
- client/: 包含客户端的代码文件。
- server/: 包含服务端的代码文件。
- proto/: 包含Protocol Buffers定义文件。
- config/: 包含项目的配置文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
服务端启动文件
文件路径:server/main.go
package main
import (
"log"
"net"
"google.golang.org/grpc"
"your_package/proto"
)
func main() {
lis, err := net.Listen("tcp", ":50051")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
s := grpc.NewServer()
proto.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
package main
import (
"log"
"google.golang.org/grpc"
"your_package/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 := proto.NewYourServiceClient(conn)
// 调用服务方法
// ...
}
3. 项目的配置文件介绍
文件路径:config/config.yaml
server:
port: 50051
host: localhost
database:
username: root
password: password
host: localhost
port: 3306
name: your_database
- server: 配置服务端的监听地址和端口。
- database: 配置数据库的连接信息。
以上是Go gRPC示例项目的目录结构、启动文件和配置文件的介绍。希望这份文档能帮助你更好地理解和使用该项目。