Golang使用GRPC -----1、Protobuf 配置 - Go语言中文社区

Golang使用GRPC -----1、Protobuf 配置


首先,什么是Protocol Buffers?文档中说:

“Protocol Buffers是一种以有效并可扩展的格式编码结构化数据的方式。”

一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的。。。。

当大多数公司还在纠结于如何更好提高MobileAPI的性能时,有的公司已经开始抛弃http + json,开始走向tcp + protobuf的路线了。。。。

相比在使用Restful方式完成服务之间的相互访问,GRPC能提供更好的性能,更低的延迟,并且生来适合分布式系统。

同时基于标准化的IDL(ProtoBuf)来生成服务器端和客户端代码, ProtoBuf服务定义可以作为服务契约,因此可以更好的支持团队与团队之间的接口设计,开发,测试,协作等等。

因此在很多对于应用性能有较高要求的情况下,对外使用Restful提供API接口以支持不同的客户端渠道(Web, Mobile)而服务与服务之间则采用RPC方式进行交互。

gRPC基于HTTP/2标准设计,所以相对于其他RPC框架,gRPC带来了更多强大功能,如双向流、头部压缩、多复用请求等。

总之:相同的数据量protobuf比json速度快了不是一星半点。

系统:win10 64位

protobuf:protoc-3.5.1

protoc下载地址:https://github.com/google/protobuf/releases

文件名称:protoc-3.5.1-win32.zip

安装 goprotobuf

1.从 github.com/google/protobuf/releases 获取 Protobuf编译器 protoc(可下载到 Windows下的二进制版本)

1、解压缩protoc文件在c盘根目录;

2、“环境变量” -> “系统变量” -> 双击修改 变量”path” ,追加以下内容:

C:protoc-3.51-win32bin

3、打开cmd执行

protoc --version

命令行回复信息:

libprotoc 3.5.1

安装完毕。

2.获取 goprotobuf提供的 Protobuf编译器插件 protoc-gen-go(被放置于 $GOPATH/bin下,$GOPATH/bin应该被加入 PATH环境变量,以便 protoc能够找到 protoc-gen-go)

此插件被protoc 使用,用于编译.proto 文件为Golang 源文件,通过此源文件可以使用定义在.proto 文件中的消息。

go get github.com/golang/protobuf/protoc-gen-go

cd github.com/golang/protobuf/protoc-gen-go

go build

go install

3.获取 goprotobuf提供的支持库,包含诸如编码(marshaling)、解码(unmarshaling)等功能

go get github.com/golang/protobuf/proto

cd github.com/golang/protobuf/proto

go build

go install

Hello gRPC

这里通过一个例子来说明用法。:

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/f926f97ce175
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-09 22:17:55
  • 阅读 ( 1178 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢