over-golang/06-微服务/02-protobuf-1-概述与安装.md
2021-07-02 18:11:59 +08:00

2.2 KiB
Raw Permalink Blame History

一 数据交互格式

常见数据交互格式有:

  • xml在webservice中应用最为广泛但是相比于json它的数据更加冗余因为需要成对的闭合标签。
  • json一般的web项目中最流行的主要还是json。因为浏览器对于json数据支持非常好有很多内建的函数支 持。
  • protobuf后起之秀谷歌开源的一种数据格式

二 protobuf简介

protobuf是google于2008年开源的可扩展序列化结构数据格式。相较于传统的xml和jsonprotobuf更适合高性能对响应速度有要求的数据传输场景。

利用protobuf可以自定义数据结构使用protobuf对数据结构进行一次描述即可利用各种不同语言或从各种不同数据流中对结构化数据进行轻松读写。

protobuf优点

  • 1:序列化后体积相比Json和XML很小适合网络传输
  • 2:支持跨平台多语言
  • 3:消息格式升级和兼容性还不错
  • 4:序列化反序列化速度很快快于Json的处理速速

protobuf也有其不可忽视的缺点

  • 功能简单,无法用来表示复杂的概念。
  • protobuf是二进制数据格式需要编码和解码数据本身不具有可读性因此只能反序列化之后得到真正可读的数据。而XML已经是行业的标准工具且具备自我解释性可以被人们直接读取编辑。

三 protobuf安装

3.1 linux安装protobuf

下面列出centOS的安装方式

# 安装依赖
yum install autoconf automake libtool curl make g++ unzip libffi-dev  glibc-headers gcc-c++ -y

# 下载
git clone https://github.com/protocolbuffers/protobuf.git

# 安装
unzip protobuf.zip
cd protobuf
./autogen.sh
./configure
make && make install
ldconfig        # 刷新共享库

# 测试
protoc --version

3.2 mac安装protobuf

mac推荐使用homebrew安装

# 安装
brew install protobuf
brew install automake
brew install libtool

# 测试
protoc --version

3.3 win安装protobuf

下载地址: https://github.com/google/protobuf/releases

下载win版本后配置文件中的bin目录到Path环境变量下即可。

protoc --version    #查看protoc的版本