protobuf
1. 为什么使用protobuf
Protobuf 是结构化数据 序列化框架。
2. 什么是序列化
将对象或者结构化数据 转换成可以便于存储和传输的数据格式。要保证序列化之后的结果 能被重新建立回原来的对象或数据。
3. Protobuf 为什么更快 更小
转成二进制 有压缩
4 如何编写.proto 文件
关键字
Proto3 删除了optional 与 required
syntax = "proto2"; package tutorial; option java_package = "com.example.tutorial"; option java_outer_classname = "AddressBookProtos"; message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phones = 4; } message AddressBook { repeated Person people = 1; } |
5 常用数据类型与java 对照
proto | java |
Int32 | int |
string | String |
double | double |
enum | enum |
Int 64 | Long |