`
wsjiang
  • 浏览: 393921 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Protocol Buffer 安装与使用

阅读更多

       本文系转载备份!

       最近要在产品中改进对象的序列化了。以前用的是java默认序列化实现功能,在产品上线之前要对关键的对象进行序列化/反序列化优化,以期改善存储效率。这里选取了Protocol buffer作为最终的方案,原因主要有以下几个方面:

      1、java默认序列化效率较低。

      2、apache的thrift方案并无明显优势,但是使用成本较高,安装等较为麻烦。

      3、虽然PB不支持map,但是我们的应用中map用的较少,即使使用了存储的数据量也较少,可以转化为list方案进行存储。

        

      以上只是我选择序列化方案的一些考虑。下面是PB的2.3.0版本的安装与使用示例:

      protobuf原理文档 参阅:http://www.cnblogs.com/shitouer/archive/2013/04/10/google-protocol-buffers-tutorial.html

       

       安装&使用:

      A、windows 安装 protocol buffer  (如果没有安装Maven,先安装maven,并且mvn -version 验证安装成功)

      B、下载protobuf 2.3.0 包: protoc-2.3.0-win32.zip  和  protobuf-2.3.0.zip

      C、将两个包解压到某一目录 如:D:\dev\

      D、D:\dev\protoc-2.3.0-win32中的protoc.exe拷贝到c:\windows\system32

   E、将定义数据结构的proto文件test.proto放到某一目录  如:D:\dev\protobuf-2.3.0\files\proto

            

package com.test;
 
option java_package = "com.test";
option java_outer_classname = "TestPBDO";
 
message TestPB {
  enum UpdateType {     //消息类型
    UPDATETYPE_LOCATION = 1;          //位置更新类型
    UPDATETYPE_TIME     = 2;          //时间戳更新类型
    UPDATETYPE_DELETE   = 3;          //删除类型,冗余
  }
  optional UpdateType update_type = 1; //更新类型
  
  optional int64 user_id      = 2;     //用户id
  optional double user_nick= 3;     //用户nick

}
              

 

      F、控制台:定位到test.proto文件所在目录 D:\dev\protobuf-2.3.0\files\proto

      G、运行命令:protoc --java_out=. test.proto

    
      如果生成com/test文件夹并在最终生成TestPBDO类,则protobuf工作正常。
分享到:
评论

相关推荐

    protocol buffer

    Protocol Buffer(简称protobuf)是Google开发的一种数据序列化协议,它是跨平台、语言无关的,用于结构化数据的高效序列化方法。protobuf提供了一种方式将数据结构定义为.proto文件,然后可以使用protobuf编译器...

    01 Protocol Buffer技术详解(语言规范).doc

    Protocol Buffer 中存在一张类型对照表,用于将 Protocol Buffer 中的数据类型与其他编程语言(C++/Java)中的类型进行对照。该对照表将在后面给出。 Protocol Buffer 的优点 1. 保持良好的风格和系统性 2. 结合...

    Protocol Buffer

    **四、Protocol Buffer与XML/JSON的比较** 1. **体积**:与XML和JSON相比,Protocol Buffer序列化后的数据更小,适合网络传输。 2. **性能**:Protocol Buffer的解析速度通常快于XML和JSON。 3. **结构化**:XML...

    Protocol_Buffer官网文档中文版

    通过以上概述,我们了解了Protocol Buffer的基本概念、工作原理以及如何使用它来定义、序列化和反序列化数据。无论是对于初学者还是有一定经验的开发者来说,Protocol Buffer都提供了一种强大而灵活的方式来管理和...

    Protocol Buffer编译工具包

    为了使用Protocol Buffer编译工具包,你需要先安装对应版本的protoc,然后编写.proto文件定义数据结构,最后通过命令行调用protoc生成所需的源代码。一旦完成这一步,你就可以在项目中导入生成的类,利用PB提供的API...

    protocolbuffer

    ProtocolBuffer,简称PB,是由Google开发的一种数据序列化协议,它是Google的一种二进制数据交换格式,用于结构化数据的序列化。Protocol Buffers的设计目标是替代XML等传统数据交换格式,提供更高效、更小的数据...

    Protocol Buffer 3.0 C++

    在C++中使用Protocol Buffer 3.0,首先需要理解它的基本概念和工作流程。它主要包括三部分:定义消息类型(.proto文件),编译消息类型,以及编码和解码数据。 1. **定义消息类型**: 使用.proto文件,开发者可以...

    cocos2d-x protocol buffer 直接可以用的工程文件。

    标题中的"直接可以用的工程文件"意味着这是一个预编译好的Cocos2d-x与Protocol Buffer整合的工程,开发者无需从零开始配置和编译,可以直接在自己的项目中导入并使用,节省了时间和精力。 描述中提到"已经编译好的...

    Protocol Buffer sublime text 3插件

    1. **Protocol Buffer语法**:Protocol Buffer使用类似XML或JSON的数据结构定义消息类型,但更紧凑、高效。基本元素包括消息类型、字段、枚举和选项。例如,定义一个简单的消息类型如下: ```proto message Person...

    ProtocolBuffer

    为了减小通信开销和提高同步效率,使用Protocol Buffer的优势就显现出来了:它的数据压缩性好,传输速度快,且解析效率高,这些都是移动互联网环境下非常重要的特性。 Protocol Buffer的工作原理是,开发者首先定义...

    google Protocol Buffer2.5.0.jar

    Protocol Buffer 2.5.0 jar包

    Google_Protocol_Buffer_的使用和原理

    ### Google Protocol Buffer 的使用与原理详解 #### 一、Google Protocol Buffer 概览 Google Protocol Buffer(简称 Protobuf)是谷歌公司开发的一种高效且轻便的结构化数据存储格式,适用于多种应用场景,如数据...

    ProtocolBuffer详细使用文档

    - 使用 Protocol Buffer 语法描述需要存储的数据类型(.proto 文件),这一步骤至关重要,因为 .proto 文件是整个数据模型的基础。 - 使用 Protocol Buffer 编辑器编译 .proto 文件,生成对应的平台代码文件。这一...

    Protocol_Buffer中文翻译

    虽然XML也是一种广泛使用的数据交换格式,但它与Protocol_Buffer相比有几个缺点: 1. **数据大小**:XML通常比Protocol_Buffer大得多,因为后者采用了更紧凑的二进制格式。 2. **处理速度**:Protocol_Buffer的数据...

    Protocol Buffer配置及实例

    ### Protocol Buffer 配置及实例详解 #### 一、Protocol Buffers 概述 Protocol Buffers 被定义为一种数据描述语言(Data Description Language,DDL),它在 Google 内部得到了广泛的应用,主要用于结构化数据的...

    Protocol Buffer java版本

    Protocol Buffer是Google开发的一种数据序列化协议,常用于结构化数据的存储和交换。它提供了一种高效、灵活且跨语言的方式,使得不同...通过理解并熟练使用Protocol Buffer,可以提高软件系统的互操作性和可维护性。

    Protocol Buffer技术深入理解(C++实例)

    在C++中,Protocol Buffer提供了强大的工具`protoc`,用于将`.proto`文件转换为对应编程语言(如C++)的源代码,使得开发者能够方便地在应用程序中使用这些数据结构。 首先,我们要理解如何生成C++代码。`.proto`...

    protocol buffer 3.0.0

    Protocol Buffer(简称protobuf)是Google开发的一种数据序列化协议,它是Google的一种高效、灵活且跨平台的数据交换格式。Protocol Buffers的设计目标是为了提供一种简单、快速、可扩展的方式来存储和传输结构化...

Global site tag (gtag.js) - Google Analytics