美文网首页
分布式系统之Java序列化

分布式系统之Java序列化

作者: 技术与健康 | 来源:发表于2020-08-17 21:20 被阅读0次

对象序列化

在程序运行时,在内存中的对象,希望能够持久化保存对象,则需要讲内存的对象转换为一定的格式,这个过程就是序列化的过程。反过来,程序重新运行,读取数据转换为对象的过程就是反序列化。这个在当我们讲数据存入数据库,再从数据库读取,其实是数据库帮我们做了序列化和反序列化这个过程。另外一个就是网络通信,也需要接收方和发送方分别支持特定格式的序列化和反序列化。

序列化/反序列化其实是要数据有一定的格式,这个格式就是序列化协议,主要关注数据存储和传输。序列化方案很多,主要有三个性能度量指标

  • 对象序列化后的字节占位大小
  • 序列化和反序列化的性能
  • 序列化工具自身的性能

常见的序列化分为下面几类
1.文本序列化
2.二进制序列化

1.文本序列化

文本序列化有两种格式JSON和XML,XML已经很少使用,目前主要就是JSON,他是一种轻量级的数据交换格式,采用文本格式存储和表示数据。

java语言框架:
1.Jackson jackson-core+jackson-databind(流式处理)
2.Gson 谷歌开源的三方库
3.FastJson--用的最广,之前的漏洞问题暴露进行了统一的升级处理
4.Json-lib

2.二进制序列化
二进制java序列化

1.java 原生序列化 实现Serializable接口 ,RMI,EJB采用就是次方案,导致吞吐量受限。
2.高性能框架kryo (主要方法WriteObject,WriteClassAndObject,register)

二进制异构语言序列化

1.PB Protocol Buffers 高性能异构语言序列化框架 ProtoBuf
可以安装命令行 通过编译 proto文件,生成对应的类文件。在开发环境中,可以通过mvn 插件protobuf-java,mvn 命令来进行编译生成

  1. msgpack
    采用packb对数据进行打包,使用unpackd进行解包。除了使用packed方法,msgpack很人性化的提供了另一种打包和解包的方法,这个方法和json打包/解包的方法一样,那就是dumps和loads方法了

数据压缩后 :如果说把json数据的大小比作西瓜大小,那么protobuf就是苹果大小,msgpack呢,则是红豆大小,所以msgpack使用优势还是很明显的

相关文章

  • Java 序列化 之 单例模式

    序列化相关文章: Java 序列化 之 Serializable Java 序列化之 Externalizable...

  • java 序列化 原理解析

    序列化相关文章: Java 序列化 之 Serializable Java 序列化之 Externalizable...

  • Java 对象序列化

    Java 序列化 实现对象 Object 与字节 byte 的转换。例如在分布式环境中传递对象。 Java 序列化...

  • 分布式系统之Java序列化

    对象序列化 在程序运行时,在内存中的对象,希望能够持久化保存对象,则需要讲内存的对象转换为一定的格式,这个过程就是...

  • JAVA反序列化漏洞

    目录 反序列化漏洞序列化和反序列化JAVA WEB中的序列化和反序列化对象序列化和反序列范例JAVA中执行系统命令...

  • Hadoop项目基本

    Common : 一系列 组件和接口,用于分布式文件系统和通用I/O(序列化,java RPC和持久化数据结构)A...

  • json反序列化之实体类、集合

    1、反序列化之json字符串转为java实体对象 2、 反序列化之json字符串转为java集合

  • 无标题文章

    分布式队列编程:模型、实战 分布式队列编程优化篇 聊聊java高并发系统之异步非阻塞

  • 【Android】关于序列化分析的一些好文分享

    为什么要进行序列化 Android之序列化浅析 Java序列化接口Serializable解析 Android序列...

  • Java 序列化之 Externalizable

    相关文章: Java 序列化 之 Serializable JDK中除了提供 Serializable 序列化接口...

网友评论

      本文标题:分布式系统之Java序列化

      本文链接:https://www.haomeiwen.com/subject/cbhcjktx.html