Skip to content

基本概念

远程过程调用协议RPC,如,两台服务器A,B,在服务器A上部署了一个应用,想要调用B服务器上应用提供的函数,可以通过RPC协议调用b.ticket.get()来直接调用。

gRPC是一个高性能、通用的开源RPC框架,由Google主要面向移动应用开发并基于HTTP/2协议标准设计,基于ProtoBuf序列化协议开发,且支持多种开发语言。相较于RESTgRPC传输速率更快,更安全。

ProtobufGoogle旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式,是一种独立和轻量级的数据交换格式。所以很适合用做数据存储和作为不同应用,不同语言之间相互通信的数据交换格式,只要实现相同的协议格式即同一proto文件被编译成不同的语言版本,加入到各自的工程中去,用于RPC系统和持续数据存储系统。这样不同语言就可以解析其他语言通过 protobuf序列化的数据。相比JsonProtobuf有更高的转化效率,时间效率和空间效率。

当想把内存中的对象状态保存到一个文件中或数据库的时候或者想套接字在网络上传输对象的时候需要序列化

对象 --> 序列化 --> 传输或存储 --> 反序列化 --> 对象 (协议 数据格式 协议)

  • 对象的序列化:把对象转化为字节序列的过程,封装到body
  • 对象的反序列化:把字节序列恢复为对象的过程

序列化后的两种格式:文本模式(可读的)和二进制模式(不可读)

主流序列化协议:xmljsonprotobuf

xmljson以文本方式进行存储;protobuf以二进制方式进行存储

Released under the MIT License.