|
|
||
|---|---|---|
| consul | ||
| proto | ||
| sample | ||
| .gitignore | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| consul-demo | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
README.md
consul-demo
以consul为注册中心的相关程序开发与配置demo
开发IDE:vscode
1. vscode-proto3 proto文件编辑
开发环境
1. sudo apt install protobuf-compiler
2. go get -v -u github.com/golang/protobuf/protoc-gen-go
3. go get -v -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
4. go get -v -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
下载googleapis,本地源码库做不定期镜像
git clone git@myschools.me:suguo/googleapis.git
编写proto文件,见网络上相关教程,注意正式项目中的规范定义
google apis使用时的路径注意!
生成proto代码,具体代码指令见Makefile
make proto
实现服务端代码
1. 准备文件夹与sample.proto对应
2. 编写struct,名称固定为Server
3. 实现proto中定义的接口
实现服务启动,核心代码
s := grpc.NewServer()
pb.RegisterHelloServer(s, &sample.Server{})
go func() {
log.Printf("starting grpc service on %s\n", ":9001")
lis, err := net.Listen("tcp", ":9001")
if err != nil {
log.Fatal("fail to open port: ", err)
}
err = s.Serve(lis)
if err != nil {
log.Fatal("fail to open microservice: ", err)
}
}()