ProtoBuf系列protobuf的介绍与安装

Posted 清风拂山岗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ProtoBuf系列protobuf的介绍与安装相关的知识,希望对你有一定的参考价值。

ProtoBuf系列(一)protobuf的介绍与安装

1. protobuf简介

Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

Protobuf刚开源时的定位类似于XML、JSON等数据描述语言,通过附带工具生成代码并实现将结构化数据序列化的功能。这里我们更关注的是Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言RPC接口的基础
工具。

需要了解两点

  1. protobuf是类似与json一样的数据描述语言(数据格式)
  2. protobuf非常适合于RPC数据交换格式

接着我们来看一下protobuf的优势和劣势:

**优势: **

1:序列化后体积相比Json和XML很小,适合网络传输

2:支持跨平台多语言

3:消息格式升级和兼容性还不错

4:序列化反序列化速度很快,快于Json的处理速度

劣势:

1:应用不够广(相比xml和json)

2:二进制格式导致可读性差

3:缺乏自描述

2. protobuf的安装

  1. 下载 protobuf

    方法一:===> git clone https://github.com/protocolbuffers/protobuf.git
    
    方法二:===> 或者将准备好的压缩包进行拖入
    	解压到$GOPATH/src/github.com/protocolbuffers/下面
    	Unzip protobuf.zip
    
  2. 安装(ubuntu下)

    (1)安装依赖工具(联网)
    $ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y
    
    (2)进入protobuf文件
    cd protobuf/
    
    (3)进行安装检测 并生成自动安装脚本
    ./autogen.sh
    ./configure
    
    (4)进行编译C代码
    make
    
    (5)进行安装
    sudo make install
    
    (6)刷新linux共享库关系
    sudo ldconfig
    
  3. 测试protobuf编译工具

    protoc -h
    

    如果正常输出 相关指令 没有报任何error,为安装成功

  4. 安装protobuf的go语言插件

    由于protobuf并没直接支持go语言需要我们手动安装相关插件

    (1)下载
    方法一:===> go get -v -u github.com/golang/protobuf/proto
    方法二:===>或者将 github.com-golang-protobuf.zip拖入 进行解压到 $GOPATH/src/github.com/golang
    
    (2)进入到文件夹内进行编译
    $ cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go
    $ go build
    
    (3)将生成的 protoc-gen-go可执行文件,放在/bin目录下
    $ sudo cp protoc-gen-go /bin/
    
    (4)尝试补齐protoc-gen-go 如果可以补齐代表成功,如果执行不报错 代表工具成功
    

以上是关于ProtoBuf系列protobuf的介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章

Google 的开源技术protobuf 简介与例子

Protobuf语法介绍

Netty系列化之Google Protobuf编解码

消息序列化工具-protobuf介绍及安装使用技巧

protobuf篇:介绍安装官方教程翻译测试

protobuf 使用相关