What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back.
你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。
gRPC 简介:
gRPC 是一款高性能、开源的 RPC 框架,产自 Google,基于 ProtoBuf 序列化协议进行开发,支持多种语言(Golang、Python、Java等),本篇只介绍 Golang 的 gRPC 使用。因为 gRPC 对 HTTP/2 协议的支持使其在 Android、IOS 等客户端后端服务的开发领域具有良好的前景。gRPC 提供了一种简单的方法来定义服务,同时客户端可以充分利用 HTTP/2 stream 的特性,从而有助于节省带宽、降低 TCP 的连接次数、节省CPU的使用等。
安装:
1. gRPC 的安装:
go get -u google.golang.org/grpc
此链接需要fq, 如果不清楚如何FQ, 可以直接下载第三方包然后安装,提供一个可以无需FQ就可以下载的地址:https://www.golangtc.com/download/package
- 具体安装方式:
将下载下来的第三方包,放在$GOPATH/src 下, 然后 go install XXX.com/XX (包名)。可能需要其他第三方包,只要把需要的都go get 下来就好了
2. protobuf的安装
因为 gRPC 是基于 protobuf 实现的接口序列化,所以也要安装 protobuf。
- 安装 protoc :Protoc下载地址,可以根据自己的系统下载相应的 protoc,windows 用户统一下载 win32 版本。
- 配置 protoc 到系统的环境变量中,执行如下命令查看是否安装成功: protoc
3. 安装 ProtoBuf 相关的 golang 依赖库
go get -u github.com/golang/protobuf/{protoc-gen-go,proto}
// 可以分步执行
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
如果同样无法下载, 可以使用以上说的方式下载安装。 安装成功后,查看$GOPATH/bin 下是否有protoc-gen-go.exe (windows下)。
到此就算安装成功,下面可以马上就如测试阶段了。
总结:
1. 问: 为什么有HTTP请求,为什么还要用rpc调用?
首先http是超文本传输协议,
rpc是远端过程调用,其调用协议通常包含传输协议和编码协议。使用的 http2 协议,也有如dubbo一类的自定义报文的tcp协议
参考文章:
https://www.zhihu.com/question/41609070?sort=created
2. HTTP服务和RPC服务的优胜劣汰?
因为RPC效率更高,而HTTP服务开发迭代会更快,相对简易, 所以RPC多用于大型企业
RPC调用流程图
有疑问加站长微信联系(非本文作者)