公司项目使用了gRPC, 刚从java转go的我实在是搞不懂。百度了参考各种资料,在这里做个记录。
参考:https://blog.csdn.net/carson_ho/article/details/70568606
定义:
一种 结构化数据 的数据存储格式。(类似于xml, json)
作用:
通过将 结构化的数据 进行串行化(序列化),从而实现 数据存储/rpc数据交换 的功能
序列化:将数据结构或对象 转换成 二进制的 过程
饭序列化:将在序列化过程中所生成的二进制串 转换成 数据结构或对象 的过程。
特点:
相对于xml,json,protocol buffer有如下特点:
应用场景:
传输数据量大 & 网络环境不稳定的数据存储 、rpc数据交换的需求场景。
序列化原理解析:
序列化本质:对数据进行编码 + 存储
1. 序列化速度快:
编码/解码 方式简单(只需简单的数学运算= 位移等)
采用pb自身的框架代码 和编译器共同完成
2. 序列化后体积小(数据压缩效果好)
采用了独特的编码方式,如Varint, Zigzag等
采用T - L - V 的数据存储方式,
即 Tag - Length - Value,标识 - 长度 - 字段值 存储方式,减少了分隔符的使用,数据存储得紧凑
使用步骤:
1. 环境配置
1.1 下载p