在这个例子中,我们将创建一个简单的gRPC客户端和服务器应用程序。简单地说,客户端发送一个请求并从服务器接收一个响应。我不打算详述什么是gRPC和proto文件,但在底部添加了一些链接。
有两件重要的事情。第一件事是客户端和服务器应用程序共享同一个protobuf文件。第二个是,如果你更新proto文件,你必须重新编译以反映其*.pb.go 文件的变化。
前提条件
启动go模块
go mod init github.com/YOU/bank
安装gRPC
go get -u google.golang.org/grpc
安装protobuf
# MacOS
安装protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go
结构
当你构建一个gRPC应用程序时,你首先要创建一个*.proto 文件并进行编译,然后开始开发你的应用程序。
├── Makefile
文件
制作文件
.PHONY: compile
credit.proto
syntax = "proto3";
credit.pb.go
我不在这里添加内容,因为它是通过上面的命令生成的。
client/main.go
package main
server/main.go
package main
测试
$ make server
$ make client
当你运行上面的客户端代码时,服务器也会输出以下信息。
2020/04/04 18:07:42 Request: 1990.01