重要指标
通用性:支持跨语言、跨平台易用性:便于使用、调试,开发上手快强健性/鲁棒性:成熟度高,文档社区完善可扩展性/兼容性:新旧数据结构的变更扩展无影响性能:编解码时间和空间开销小安全性/访问限制:跨网安全
组件结构
IDL(Interface description language)文件:参与通讯的各方需要对通讯的内容需要做相关的约定
IDL Compiler:IDL文件中约定的内容为了在各语言和平台可见,需要有一个编译器,将IDL文件转换成各语言对应的动态库
Stub/Skeleton Lib:负责序列化和反序列化的工作代码
Stub部署在客户端;Skeleton部署在服务端
Client/Server:指的是应用层程序代码,他们面对的是IDL所生存的特定语言的class或struct
底层协议栈和互联网:序列化之后的数据通过底层的传输层、网络层、链路层以及物理层协议转换成数字信号在互联网中传递
框架
XML&SOAP标准的XML描述格式有两种:DTD(Document Type Definition)和XSD(XML Schema Definition)
SOAP是一种采用XML进行序列化和反序列化的协议,它的IDL是WSDL. 而WSDL的描述文件是XSD,而XSD自身是一种XML文件JSON(Javascript Object Notation)ThriftFacebook的方案,二进制存储,需要IDL,非自描述
Thrift序列化之后是Binary,不具备可读性
Thrift的序列化和框架紧耦合,不适合数据持久化协议
纯粹的展现层协议(Presentation Layer)
标准的IDL和IDL编译器
针对大量数据网络传输设计的序列化方案,用于储存多维数组
Hessiondubbo RPC默认启用BenchmarkKryo