为什么选择protobuf,而不选择thift和avro,原因大概几点吧,网上对比的文章很多,我主要关注以下几点

1、protobuf序列化性能最好,序列化后字节数最少。

2、protobuf是单纯的序列化框架,不自带通信层,因为通信层我要用mina或netty,之前用的比较多,比较熟悉。

3、avro序列化的时候,将数据和schema存储到一起了,我理解客户端也需要用avro才能读取,不满足我们的需求。

选定protobuf了,准备尝试一下,但protobuf官网下载,说啥也没下载下来,开了FQ软件也不行。于是从github下载了2.6.1的源码准备自己编译。但是执行autogen.sh的时候还需要联网下载gtest,这个也下载不了,没深入研究,后来从csdn下载了一个(一定要保存好)。

编译安装很简单,四步搞定:

1、./configure
2、make
3、make check
4、sudo make install

protobuf编译安装的更多相关文章

  1. protobuf 编译安装

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://developers.google.com/protocol-buffers 2.下载最新的protobuf ...

  2. hadoop-2.2.0 的编译安装及HA配置

    一 准备工作 准备工作中要求有 1.centOs 6.4,添加hadoop用户,配置集群内的/etc/hosts文件. 2.安装hadoop用户的ssh,并打通集群内所有机器,(ha执行fencing ...

  3. protobuf的编译安装

    github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明: ...

  4. [转]protobuf的编译安装

    github地址:https://github.com/google/protobuf支持多种语言,有多个语言的版本,本文采用的是在centos7下编译源码进行安装. github上有详细的安装说明: ...

  5. 附录A 编译安装Hadoop

    A.1  编译Hadoop A.1.1  搭建环境 第一步安装并设置maven 1.  下载maven安装包 建议安装3.0以上版本(由于Spark2.0编译要求Maven3.3.9及以上版本),本次 ...

  6. thrift在windows的编译/安装--c++版

    前言: thrift是出于Facebook的rpc网络编程框架, 其对跨平台和多语言的支持优于google protobuf, 但thrift在java/c#语言上应用比较多, 资料也丰富, 在win ...

  7. hadoop2.1.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  8. hadoop2.1.0和hadoop2.2.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  9. 深度学习框架Caffe的编译安装

    深度学习框架caffe特点,富有表达性.快速.模块化.下面介绍caffe如何在Ubuntu上编译安装. 1. 前提条件 安装依赖的软件包: CUDA 用来使用GPU模式计算. 建议使用 7.0 以上最 ...

随机推荐

  1. 解密Java内存溢出之持久代

    垃圾回收是Java程序员了解最少的一部分.他们认为Java虚拟机接管了垃圾回收,因此没必要去担心内存的申请,分配等问题.但是随着应用越来越复杂,垃圾回收也越来越复杂,一旦垃圾回收变的复杂,应用的性能将 ...

  2. PHP缩略图类

    class ThumbImages{ /** * 生成缩略图 * prorate 按比例缩放 * distortion 扭曲型缩图 * cut 最小裁剪后的缩图 * backFill 背景填充图 * ...

  3. 事件溯源模式(Event Sourcing Pattern)

    此文翻译自msdn,侵删. 原文地址:https://msdn.microsoft.com/en-us/library/dn589792.aspx 本文介绍了一种有利于物化(materialize)领 ...

  4. sqlite db-journal文件产生原因及说明

    今天在Android中将sqlite的数据库文件生成在SD卡上的过程中,发现生成的.db文件的旁边 生成了一个大小为0的与数据库文件同名的.db-journal文件,不明白此文件的用途,于是 goog ...

  5. 发布android apk,Error running app: No target device found.

    https://developer.android.com/studio/run/device.html\ 一台android设备不识别,android文档还挺全 需要安装usb驱动链接里有

  6. EasyUI Tree 动态传递参数

    1.问题背景 一般出现在加载的时候,传递参数给后台,进行数据筛选,然后在加载tree渲染数据.所谓动态参数,可以是你的上一级节点node,或者是根节点node. 2.涉及方法 onBeforeLoad ...

  7. JWT笔记(2)

    上文对JWT模块进行了一个简单的分析.这篇文章稍微做出一些深入的了解. 一,Header篡改攻击 因为JWT的Header是强制有效并且是明文传输(Base64URL编码,几乎等同于明文).那么恶意用 ...

  8. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  9. Android使用TextView,设置onClick属性无效解决的方法

    Android在布局文件里为View提供了onClick属性.用法例如以下: <TextView android:id="@+id/user" android:layout_ ...

  10. linux系统预留内存和磁盘大小

    默认情况下, Linux 会最多使用 40% 的可用内存作为文件系统缓存.当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的 IO 请求都是同步的. 将缓存写入磁盘时,有一个默认1 ...