当前位置: 首页 > news >正文

Protocol Buffers:数据世界的秘语之书,手把手教学环境搭建

文章目录

  • 前言
  • 一、秘语之源:何为 Protocol Buffers?
  • 二、铸钥之具:搭建 protobuf 环境
    • 2.1 protobuf在windows下的安装
      • 2.1.1 下载protobuf编译器
      • 2.1.2 配置环境变量
      • 2.1.3 检查是否配置成功
    • 2.2 protobuf在Linux下的安装
      • 2.2.1 下载protobuf
      • 2.2.2 安装protobuf
      • 2.2.3 检查是否配置成功
  • 小结

在这里插入图片描述

前言

当数据在网络间穿梭、在磁盘中沉睡时,它需要一种 “通用语言”—— 既能被不同语言的程序读懂,又能轻巧地压缩体积,避免冗余的 “絮语”。谷歌于 2001 年打造的 Protocol Buffers,便是这样一套 “秘语体系”:它用简洁的语法定义数据结构,以高效的二进制格式序列化数据,成为分布式系统、微服务通信中的 “信使密函”。

本文将带你解锁这门 “秘语”:从认识它的本质,到亲手书写 “秘语契约”,再到让程序读懂并传递这些 “密函”,一步步掌握 protobuf的核心入门技能。

一、秘语之源:何为 Protocol Buffers?

protobuf 并非编程语言,也不是通信协议,而是一套数据序列化框架—— 它的核心作用是将 “结构化数据”(比如用户信息、订单详情)转化为紧凑的二进制字节流(“秘语原文”),也能将字节流还原为原始数据(“解密”)。

与我们熟悉的 JSONXML 相比,它的 “秘语优势” 尤为突出:

  • 更轻盈的体积:二进制格式比 JSON 的文本格式节省 30%-50% 的空间,如同将一封散文信压缩成绝句,更适合网络传输;
  • 更快的解析速度:JSON 需要逐字符解析文本,而protobuf通过预定义的结构直接读取二进制,解析效率提升 5-10 倍;
  • 更强的跨语言性:支持 Java、Python、Go、C++ 等数十种语言,只要遵循同一套 “秘语规则”,Go 程序生成的 “密函” 能被 Python 程序精准解密;
  • 更好的兼容性:当数据结构需要升级(比如新增字段)时,旧版本程序能兼容读取新版本数据,无需中断服务 —— 如同秘语体系新增了词汇,旧信使仍能读懂核心信息。

二、铸钥之具:搭建 protobuf 环境

要书写和解析 “数据秘语”,我们首先需要一把 “铸钥工具”——protobuf 编译器(protoc),它能将我们定义的 “秘语规则”(.proto 文件)转化为各语言可调用的代码(比如 Python 的.py 文件、Java 的.java 文件)。

2.1 protobuf在windows下的安装

2.1.1 下载protobuf编译器

下载地址:官网链接

在这里插入图片描述

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

在这里插入图片描述

2.1.2 配置环境变量

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

  • 首先输入环境变量进行检索,找到path之后点击编辑

在这里插入图片描述

  • 将复制的bin目录地址新建粘贴后确定
    在这里插入图片描述

2.1.3 检查是否配置成功

  • 打开cmd,输入 protoc --version
    在这里插入图片描述

  • 出现此结果则代表已经安装成功

2.2 protobuf在Linux下的安装

2.2.1 下载protobuf

下载 ProtoBuf 前⼀定要安装依赖库:

autoconf automake libtool curl make g++ unzip

如未安装,安装命令如下

Ubuntu 用户选择:

sudo apt-get install autoconf automake libtool curl make g++ unzip -y

CentOS 用户选择:

sudo yum install autoconf automake libtool curl make gcc-c++ unzip

ProtoBuf 下载地址

可以不⽤下载最新版本,具体的下载根据⾃⼰电脑情况选择。
• 如果要在 C++ 下使⽤ ProtoBuf,可以选择cpp.zip
• 如果要在 JAVA 下使⽤ ProtoBuf,可以选择 java.zip
• 其他语⾔选择对应的链接即可。
• 希望⽀持全部语⾔,选择 all.zip

在这⾥我们希望⽀持全部语⾔,所以选择 protobuf-all-21.11.zip,右键将下载链接复制出来。

下载命令:

wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
  • 下载完成后,解压zip包:
unzip protobuf-all-21.11.zip
  • 解压完成后,会生成相应文件,进入文件
    在这里插入图片描述
cd protobuf-21.11
  • 其中具体内容如下
    在这里插入图片描述

2.2.2 安装protobuf

进入解压好的文件,执行以下命令

  • 首先执行 autogen.sh,但如果下载的具体的某一门语音,不需要执行这一步
./autogen.sh
  • 第二步执行 configure
./configure

再依次执行

  • make (大约需要执行15分钟)
  • make check (大约需要执行15分钟)
  • sudo make install

在这里插入图片描述
如果出现这种报错,属于正常情况

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

执⾏ make check 后 ,出现以下内容就可以执⾏ sudo make install

在这里插入图片描述
此时就可以正常使用protobuf了

2.2.3 检查是否配置成功

  • 需要先[source /etc/profile]更新配置文件资源。

  • 输入protoc --version查看版本,有显示说明安装成功

在这里插入图片描述

小结

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

在这里插入图片描述

http://www.dtcms.com/a/365940.html

相关文章:

  • mysql高级进阶(存储过程)
  • 认识HTML
  • CDN的工作原理是什么?为什么要用高防 CDN?
  • 数据结构:双向链表
  • 分割回文串手绘图
  • 电脑城老板不会告诉你的装机秘籍:建造者模式让你的代码高配起飞!
  • @Autowired原理(三)
  • 【Qt中信号槽连接connect有接收者和无接收者的区别】
  • LeetCode 20.有效的符号算法解析及栈的相关知识
  • FTL文件格式的原理与应用(AI)
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • AUTOSAR进阶图解==>AUTOSAR_TPS_ARXMLSerializationRules
  • Linux学习-硬件
  • 2025年IT行业入门级证书选择与分析
  • 从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
  • 深入浅出:YOLOv8性能评估指标与电科金仓2025AI新成果
  • SuperMap GIS基础产品FAQ集锦(20250819)
  • C++----模板特化以及模板声明与定义分离问题
  • 2025 大学生必考 IT 行业证书
  • BigemapPro中的坐标定位于与拾取
  • NuttX编译流程与config.h生成解析
  • STM32G4 电流环闭环
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-授权服务
  • 后端框架(SpringBoot):自动配置的底层执行流程
  • 2025年经管专业人士证书选择与分析
  • 深入理解Cloudflare错误1006、1007和1008:原因、解决方案和预防措施
  • Android创建demo脚本
  • 比亚迪欧洲逆袭特斯拉,新能源出海新纪录!
  • Redis 哨兵模式(Sentinel Mode)
  • Reflection反射