最近打算开发分布式系统。网络协议之前选用json,后来考虑到效率问题,决定采用googel protocol buffer。
目前系统开发中主要采用c++、python。 恰好PB可以生成相关协议代码,真是太帮了。
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准。它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API
安装 Google Protocol Buffer
在网站 http://code.google.com/p/protobuf/downloads/list上可以下载 Protobuf 的源代码。然后解压编译安装便可以使用它了。
安装步骤如下所示:
tar -xzf protobuf-2.1.0.tar.gz
cd protobuf-2.1.0
./configure --prefix=$INSTALL_DIR
make
make check
make install
协议开发:
首先需要编写 .proto 文件:
package lm;
message helloworld
{
required int32 id = 1; // ID
required string str = 2; // str
optional int32 opt = 3; //optional field
}