`
fulianqiu
  • 浏览: 9089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Protocol Buffer 安装与使用win32

 
阅读更多

 

本文转载自:http://wsjiang.iteye.com/blog/2095561

       最近要在产品中改进对象的序列化了。以前用的是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

            

Test.proto代码  收藏代码
  1. package com.test;  
  2.    
  3. option java_package = "com.test";  
  4. option java_outer_classname = "TestPBDO";  
  5.    
  6. message TestPB {  
  7.   enum UpdateType {     //消息类型  
  8.     UPDATETYPE_LOCATION = 1;          //位置更新类型  
  9.     UPDATETYPE_TIME     = 2;          //时间戳更新类型  
  10.     UPDATETYPE_DELETE   = 3;          //删除类型,冗余  
  11.   }  
  12.   optional UpdateType update_type = 1; //更新类型  
  13.     
  14.   optional int64 user_id      = 2;     //用户id  
  15.   optional double user_nick= 3;     //用户nick  
  16.   
  17. }  
               

 

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

    protocol buffer jar架包和Windows下的代码生成工具

    protoc-2.5.0-win32则是protobuf的编译器,用于生成与特定编程语言(在这个例子中是Java)兼容的源代码。这个工具能够解析.proto文件,.proto文件是protobuf的数据结构定义文件,其中描述了消息类型、字段、枚举等...

    QT,qtcreator编译protocol buffer,支持编译MSVC,mingw版本

    将生成的头文件和源文件添加到qtcreator项目中,即可开始使用Protocol Buffer进行数据序列化和反序列化。 通过以上步骤,你可以在qtcreator中成功编译并使用Protocol Buffer,同时支持MSVC和mingw编译器。这将使得...

    ProtocolBuffer2.4.1源码包及安装包

    ProtocolBuffer(简称protobuf)是Google开发的一种数据序列化协议,它是Google开源的一种高效、灵活且跨平台的数据交换格式。在本文中,我们将深入探讨protobuf 2.4.1版本的相关知识点,包括其源码包和安装包的使用...

    QT下使用的Protobuf(Protocol Buffer)动态链接库

    标题中的“QT下使用的Protobuf(Protocol Buffer)动态链接库”指的是在QT开发环境中使用Google的Protocol Buffers(简称Protobuf)库,并且是针对动态链接库的使用情况。Protocol Buffers是一种序列化协议,它允许...

    ProtocolBuffer for java(android)

    **ProtocolBuffer for Java(Android)详解** Protocol Buffer(简称ProtoBuf)是Google开发的一种数据序列化协议,它能够将结构化的数据序列化,可用于数据存储、通信协议等方面。 ProtoBuf 提供了高效的编码和解码...

    Protocol Buffers v3.6.0

    protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的...

    protoc-2.5.0-win32.zip和protobuf-java-2.3.0.jar

    总结来说,protoc-2.5.0-win32.zip和protobuf-java-2.3.0.jar这两个文件提供了在Windows 32位环境中使用Protocol Buffer进行数据序列化和反序列化所需的一切工具和库。对于开发跨平台、高性能的应用程序,尤其是涉及...

    protoc-2.4.1-win32.zip

    标签中的"protoc-2.4.1-win32.zip xml protocol buffer"提到了两个关键概念:XML和Protocol Buffer。XML是一种通用的标记语言,广泛用于数据交换和文档存储,而Protocol Buffer则是Google提出的一种更高效的替代方案...

    google protocal buffer 2.6.1 及实例

    2. **protoc-2.6.1-win32**:这是Protobuf的编译器,用于将定义数据结构的.proto文件转换为各种编程语言的类。在这个版本中,提供了Windows 32位的版本,开发者可以使用它来生成对应语言的代码,如Java、C++或Python...

    protoc-3.0.0-beta-1-win32.zip

    Protoc是Protobuf的编译器,可以将 proto 文件编译成目标语言了。 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合...下载 protoc-3.0.0-win32然后解压,解压后目录下有proto.exe文件,可以直接使用

    UE4使用protobuf与服务器通信

    - 选择合适的版本进行安装,本实验中使用的版本为`cmake-3.12.0-rc1-win64-x64.msi`。 #### 使用CMake生成Visual Studio工程 接下来,需要使用CMake来生成可以在Visual Studio中打开的工程文件: 1. **配置CMake...

    protoc-2.6.1-win32.7z

    标题中的"protoc-2.6.1-win32.7z"指的是Protocol Buffers(简称protobuf)编译器的Windows 32位版本的压缩包文件,版本号为2.6.1。protobuf是由Google开发的一种数据序列化协议,用于高效地存储和传输结构化数据。它...

    protoc-3.19.5-win64.zip

    This package contains a precompiled binary version of the protocol buffer compiler (protoc). This binary is intended for users who want to use Protocol Buffers in languages other than C++ but do not ...

    win 7 64上编译 Hadoop 2.7.3 源码

    4. **安装ProtocolBuffer**:安装ProtocolBuffer 2.5.0。ProtocolBuffer是一种高效的序列化协议,用于Hadoop的数据交换。 5. **安装CMake**:安装CMake 2.6或更新版本。CMake是一种跨平台的自动化构建系统,用于生成...

    protoc-3.15.8-win64.zip

    标题中的"protoc-3.15.8-win64.zip"表明这是一个针对Windows 64位系统的Protocol Buffer编译器protoc的版本3.15.8的压缩包。Protocol Buffers(简称protobuf)是Google开发的一种数据序列化协议,它能够将结构化的...

    protoc-3.18.0-win64.zip

    This package contains a precompiled binary version of the protocol buffer compiler (protoc). This binary is intended for users who want to use Protocol Buffers in languages other than C++ but do not ...

    wireshark-win32-1.8.6-protobuf

    支持google protocol buffer协议的wireshark版本。 1. 支持UDP(原生) 2. 支持TCP,需要固定包头+protobuf二进制负载内容。 包头长度不包含自身,只包含protobuf二进制内容的长度。 包头长度为固定的4个字节。 3....

    hadoop2.9.2@win64

    Hadoop在访问本地文件和hdfs文件系统时,需要使用本地库,本地库中使用了Windows的...ProtocolBuffer 2.5.0 CMake 3.13.2 VS2010 mingw-w64 x86_64 8.1.0 请加星支持一下: https://github.com/caidaol/hadoopbuild

Global site tag (gtag.js) - Google Analytics