方案"/>
数据序列化方案
序列化的定义
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
序列化方案
一些比较通用的序列化方案JSON、XML、Thrift、Protostuff、Hessian。
-
JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。
json使用方便,序列化过程的数据也非常便于开发者阅读,缺点是当数据量很大的时候,性能不太好 -
Google Protocol Buffer
优点:
数据更小、解析更快、也更简单。
“向后”兼容性好
Protobuf 语义更清晰,无需类似 XML 解析器的东西
Protobuf 的编程模式比较友好,简单易学
缺点:
功能简单,无法用来表示复杂的概念。
通用性相对较差 -
XML
XML 指可扩展标记语言(EXtensible Markup Language)。 是一种标记语言,很类似 HTML
XML 序列化和反序列化是目前效率最低的,但可承载数据类型和数据量是最大的 -
thrift
解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。
所以thrift可以支持多种程序语言,例如: C++, C#, Cocoa, Erlang, Haskell, Java, Ocami, Perl, PHP, Python, Ruby, Smalltalk.
在多种不同的语言之间通信thrift可以作为二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
优点,大量语言都支持thrift,传输支持文本图片视频,性能很好,反序列化和序列化都非常高效,数据量大也不会有太大影响,thrift还提供RPC功能
缺点,对用于程序对程序静态的数据交换,需要先确定好他的数据结构,他是完全静态化的当数据结构发生变化时,必须重新编辑IDL文件,代码生成,再编译载入的流程。
更多推荐
数据序列化方案
发布评论