gRPC 简单使用
Server端代码 github.com/Charlotte32…
Client端代码 github.com/Charlotte32…
- 安装 protobuf
| 1 | bash复制代码brew install protobuf | 
- 创建一个go 程序
| 1 | bash复制代码go mod init moudleName | 
- 安装grpc
| 1 | bash复制代码go get -u google.golang.org/grpc | 
- 安装 protobuf 插件(protoc-gen-go),用来生成 pb.go pb_grpc.go
| 1 | bash复制代码go get -u google.golang.org/protobuf/cmd/protoc-gen-go | 
安装后可以到 go env GOPATH里面的bin目录去查看 是否生成了protoc-gen-go
- 编写.proto文件
语法文档: developers.google.com/protocol-bu…
| 1 | bash复制代码touch Hello.proto | 
| 1 | protobuf复制代码syntax = "proto3"; //版本号 | 
- 生成对应的pb.go 文件
| 1 | bash复制代码cd .. | 
- 编写对应的rpc service
| 1 | protobuf复制代码syntax = "proto3"; //版本号 | 
- 生成.pb_grpc 文件
| 1 | bash复制代码cd pb | 
gRPC-getway 同时提供RESTful 和 grpc接口
证书相关的操作 juejin.cn/post/702550…
- 安装
- 新建一个tool 文件夹,下面创建一个tool.go
- 引入需要的包
| 1 | go复制代码package tool | 
- go mod tidy
- 安装插件到go bin目录中‘
| 1 | bash复制代码go install \ | 
- 把google这个文件夹拷贝到pb文件夹下方
| 1 | bash复制代码cp /Users/jr/go/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.16.0/third_party/googleapis/google ./pb/ | 
2. 新建一个Prod.proto
| 1 | protobuf复制代码syntax = "proto3"; //版本号 | 
- 重新生成 pb.go_grpc.pb.go,和生成新的gateway需要的pb.gw.go
生成
Prod.pb.go、Prod_grpc.pb.go
| 1 | bash复制代码cd pb && protoc --go_out=../services --go_opt=paths=source_relative \ | 
生成
Prod.pb.gw.go
| 1 | bash复制代码protoc -I . \ | 
- 编写ProdService 文件
| 1 | go复制代码package services | 
- 编写http 服务文件
| 1 | go复制代码package main | 
- 启动
- 先启动grpcServer
- 再启动httpServer
这里grpc 端口是2333 http端口是23333
结尾
到此,http 和 grpc 都可以进行访问了
demo代码地址 :
 client :github.com/Charlotte32…
 server: github.com/Charlotte32…
本文转载自: 掘金