zoukankan      html  css  js  c++  java
  • 解编码框架的比较(protobuf,thrift,Marshalling,xml)

    1.ProtoBuf 

    特点:

    1.结构化数据存储格式

    2.高效的解编码性能。

    3.语言无关,平台无关,扩展性好。

    4.官方支持java,c++,python三种语言。

    5.性能比较好

    (与之对比xml的重大缺点:xml的解析时间开销和xml为了可读性而牺牲的空间开销都非常大,所以xml不适合做高性能通协议,proto使用二进制编码,在空间和性能上有很大优势)

    5.protobuf有数据描述文件与代码生成机制,文本化的数据描述语言,可以实现语言与平台无关。

    6.通过标识字段的顺序,可以实现协议的向前兼容。

    7.代码自动生成。

    8.结构化的文档更容易管理和维护。

    2.Thirft

    Thirft源自FaceBook,可以作为高性能通信的中间件使用,支持数据序列化和多种类型的RPC服务。thirft适用于静态的数据交换,数据结构发生变化时,需要重新编译IDL文件(protobuf就不需要这样)性能测试感觉稍稍比protobuf好一些。

    3.Marshualling

    JBoss的marshalling是一个java对象的序列化API包,修正了JDK自带的序列化包的很多问题,但又保持跟java.io.Serializable接口的兼容。

    相对于传统的java序列化机制,优点是

    1.可插拔的类解析器,通过一个接口即可实现定制。

    2.可插拔的对象替换技术,不需要通过继承的方式。

    3.无需实现java.io.Serializable接口,即可实现java序列化。

    通过缓存技术提供对象的序列化性能。

    4.JBoss Marshalling更多在JBoss内部使用,应用范围有限。

    xml

    1.易读,好理解。

    2.性能很差。

  • 相关阅读:
    复制
    rpm 软件包管理
    xfsdump 备份文件系统
    dhcp服务器(一)
    【转】kafka集群搭建
    postgresql主从配置
    centos7 安装配置postgresql
    centos7 安装配置zookeeper
    zookeeper
    piplinedb 安装配置
  • 原文地址:https://www.cnblogs.com/caobojia/p/6415635.html
Copyright © 2011-2022 走看看