protobuf3 自定义option_protobuf3基础语法

简介

ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,同类型有常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域,目前已经发展到protoc3 版本。

优点:空间效率高,时间效率要高,对于数据大小敏感,传输效率高的

缺点:消息结构可读性不高,序列化后的字节序列为二进制序列不能简单的分析有效性

基本结构

syntax="proto3"; //文件第一行指定使用的protobuf版本,如果不指定,默认使用proto2

package services; //定义proto包名,可以为.proto文件新增一个可选的package声明符,可选

option go_package = ".;services"; //声明编译成go代码后的package名称,可选的,默认是proto包名

message ProdRequest{ //messaage可以理解为golang中的结构体,可以嵌套

int32 prod_id=1; //变量的定义格式为:[修饰符][数据类型][变量名] = [唯一编号] ,同一个message中变量的编号不能相同

}

message ProdResponse{

int32 pro_stock=1;

}

service ProdService{ //定义服务

rpc GetProdStock (ProdRequest

你可能感兴趣的:(protobuf3,自定义option)