序列化与反序列化

在这里插入图片描述

重要指标
通用性:支持跨语言、跨平台
易用性:便于使用、调试,开发上手快
强健性/鲁棒性:成熟度高,文档社区完善
可扩展性/兼容性:新旧数据结构的变更扩展无影响
性能:编解码时间和空间开销小
安全性/访问限制:跨网安全 
组件结构
  1. IDL(Interface description language)文件:参与通讯的各方需要对通讯的内容需要做相关的约定

  2. IDL Compiler:IDL文件中约定的内容为了在各语言和平台可见,需要有一个编译器,将IDL文件转换成各语言对应的动态库

  3. Stub/Skeleton Lib:负责序列化和反序列化的工作代码

    Stub部署在客户端;Skeleton部署在服务端

  4. Client/Server:指的是应用层程序代码,他们面对的是IDL所生存的特定语言的class或struct

  5. 底层协议栈和互联网:序列化之后的数据通过底层的传输层、网络层、链路层以及物理层协议转换成数字信号在互联网中传递

框架
  • XML&SOAP

    标准的XML描述格式有两种:DTD(Document Type Definition)和XSD(XML Schema Definition)

  • SOAP是一种采用XML进行序列化和反序列化的协议,它的IDL是WSDL. 而WSDL的描述文件是XSD,而XSD自身是一种XML文件
  • JSON(Javascript Object Notation)
  • Thrift

    Facebook的方案,二进制存储,需要IDL,非自描述
    Thrift序列化之后是Binary,不具备可读性
    Thrift的序列化和框架紧耦合,不适合数据持久化协议

  • Protobuf

    纯粹的展现层协议(Presentation Layer)
    标准的IDL和IDL编译器

  • DIMBIN

    针对大量数据网络传输设计的序列化方案,用于储存多维数组

  • Hession
    dubbo RPC默认启用
  • Benchmark
  • Kryo
对比

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值