BATJ架构

Google protobuf序列化以及反序列化

2019-04-20  本文已影响2人  裘马轻狂大帅

序列化的目的是将对象持久化到硬盘或者用于网络传输。java也提供了序列化技术,非常简单,只要实现Serializable接口即可。如下:

implements Serializable

、Java数据序列化大致有3种实现方式,1、JSON,2、Object Serialize,3、protobuf

简介

protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍 

google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 、json进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

    protobuf在各种rpc的实现上都占据重要角色。

优点

  性能好/效率高

  代码生成机制

  支持“向后兼容”和“向前兼容”

  支持多种编程语言

缺点

  应用不够广(相比xml和json)

  二进制格式导致可读性差

  缺乏自描述

上一篇下一篇

猜你喜欢

热点阅读