RPC
- RPC代指远程过程调用(Remote Procedure Call)
- 包含了传输协议和编码(对象序列号)协议
- 允许运行与一台计算机的程序调用另一台计算机的子程序
gRPC是一个高性能、开源、通用的RPC框架,属于谷歌公司,基于HTTP2.0协议标准设计开发,支持多语言,默认采用Protocol Buffers数据序列化协议
gRPC基本流程
Protocol Buffers
- 是一种轻便高效的序列化结构化的数据协议
- 通常用在存储数据和需要远程数据通信的程序上
- 跨语言,更小、更快、也更简单(对比Json、xml)
Protocol Buffers优势
- 加速站点之间数据传输速度
- 解决数据传输不规范问题
Protocol Buffers常用概念
- Message定义:描述了一个请求或响应的消息格式
- 字段标识:消息的定义中,每个字段都有一个唯一的数值标签
- 常用数据类型:double,float,int32/64,bool,string,bytes
- Service服务定义:在Service中可以定义一个RPC服务接口
Message中字段修饰符
- singular:表示成员有0个或者一个,一般省略不写
- repeated:表示该字段可以包含0~N个元素
常用数据类型对照