一、GRPC 是什么?
gRPC,其实就是RPC框架的一种,前面带了一个g,代表是RPC中的大哥,龙头老大的意思,另外g也有global的意思,意思是全球化比较fashion,是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计, gRPC 支持 C++ Java Python Go Ruby C# Node.js PHP Dart 等语言。
RPC框架是什么?
RPC 框架说白了就是让你可以像调用本地方法一样调用远程服务提供的方法,而不需要关心底层的通信细节。简单地说就让远程服务调用更加简单、透明。
RPC包含了客户端(Client)和服务端(Server)
常见的RPC框架有
- gRPC。谷歌出品
- Thrift。Apache出品
- Dubbo。阿里出品,也是一个微服务框架
gRPC的特性
看官方文档的介绍,有以下4点特性:
- 使用Protocal Buffers这个强大的结构数据序列化工具
- grpc可以跨语言使用
- 安装简单,扩展方便(用该框架每秒可达到百万个RPC)
- 基于HTTP2协议
gRPC使用流程
gprc的使用流程一般是这样的:
- 定义标准的proto文件
- 生成标准代码
- 服务端使用生成的代码提供服务
- 客户端使用生成的代码调用服务
二、Protocol Buffers是什么?
谷歌开源的一种结构数据序列化的工具,比方说JSON、XML也是结构数据序列化的工具,不同的是,
- Protocol Buffers序列化后的数据是不可读的,因为是二进制流
- 使用Protocol Buffer需要事先定义数据的格式(.proto 协议文件),还原一个序列化之后的数据需要使用到这个数据格式
- Protocol Buffer 比 XML、JSON快很多,因为是基于二进制流,比字符串更省带宽,传输速度快
Protocol Buffer语法:查看官方文档