微服务_protobuf配置及语法

本文介绍了Google Protocol Buffers(Protobuf),一种轻便高效的结构化数据存储格式,对比了其与JSON和XML的优缺点。接着,详细阐述了 Protobuf 的环境配置,包括protobuf编译工具和Go语言插件的安装。接着,讲解了Protobuf的语法,如消息定义和字段修饰符,并提供了一个person.proto的示例。然后,指导如何通过.proto文件编译生成Go代码,并提到了编译选项。最后,展示了如何使用编译后的文件进行编码操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二.protobuf

1.介绍

Google Protocol Buffer (简称 Protobuf)是google旗下的一款轻便高效的结构化数据存储格式

相比于json和xml:

  • 优点: 体积小,速度快,支持跨平台多语言,消息格式升级和兼容性好;
  • 缺点: 应用不够广,二进制格式可读性差,缺乏自描述.
2.环境配置
  1. protobuf 编译工具安装
1、下载 protoBuf:
git clone https://github.com/protocolbuffers/protobuf.git

2、安装依赖库
sudo apt-get install autoconf  automake  libtool curl make  g++  unzip libffi-dev -y

3、进入目录
cd protobuf/ 

4、自动生成configure配置文件:
./autogen.sh 

5、配置环境:
./configure

6、编译源代码(时间比较长)make 

7、安装
sudo make install

8、刷新共享库
sudo ldconfig 

9、成功后需要使用命令测试
protoc -h  
  1. protobuf 的go语言插件安装
1.获取go语言的proto包 API接口
go get  -v -u github.com/golang/protobuf/proto
go get  -v -u github.com/golang/protobuf/protoc-gen-go

2.编译
cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/
go build

3.将生成的protoc-gen-go可执行文件,放到/bin目录下
sudo cp protoc-gen-go /bin/
3.语法

protobuf 通常会把用户定义的结构体类型叫做一个消息,写在一个以 .proto 结尾的文件中.

消息格式:
(字段修饰符)数据类型 字段名称 = 唯一的编号标签值;

  • 字段修饰符-例如: repeated…
  • 字段名称: protobuf建议以下划线命名而非驼峰式
  • 唯一的编号标签: 在同一个消息里不可以重复
  • 注释格式: 使用//,但是不要写在代码右侧,编译后会消失
  • 写一个person.proto的demo
//版本号
syntax = "proto3" ;
//包名
package pb ;

//消息体
message Person{
    string name = 1 ;
    int32 age = 3 ;
//repeated是重复的,类似go中的切片
    repeated string emails = 4 ;
//Phone_number 变量类型
    repeated  Phone_number phones = 5 ;
}

//Phone_number 是消息体名
message Phone_number {
    string 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值