protobuf (序列化协议)

简介: 出品方为google,详见ibm技术文档: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ 1.简介 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构

出品方为google,详见ibm技术文档: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/

1.简介

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

2.使用过程

写一个 proto 文件,定义我们程序中需要处理的结构化数据。

写好 proto 文件之后就可以用 Protobuf 编译器将该文件编译成目标语言了。

使用com.google.protobuf.GeneratedMessage.Builder来序列化对象。

3.其他协议对比

3.1 性能

protobuf序列化后的文件尺寸小,序列/反序列化性能高。

3.2 便利性

json肉眼可读,而protobuf是二进制。

3.3 使用场景

客户端与服务端的低频短消息通信可用json。
server之间高频的对象传输(如消息队列)用protobuf等。
目录
相关文章
|
XML 存储 JSON
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
【面试题精讲】序列化协议对应于 TCP/IP 4 层模型的哪一层?
|
4月前
|
XML 存储 JSON
(十二)探索高性能通信与RPC框架基石:Json、ProtoBuf、Hessian序列化详解
如今这个分布式风靡的时代,网络通信技术,是每位技术人员必须掌握的技能,因为无论是哪种分布式技术,都离不开心跳、选举、节点感知、数据同步……等机制,而究其根本,这些技术的本质都是网络间的数据交互。正因如此,想要构建一个高性能的分布式组件/系统,不得不思考一个问题:怎么才能让数据传输的速度更快?
106 1
|
7月前
|
XML JSON 分布式计算
如何选择序列化协议:关键因素与场景分析
如何选择序列化协议:关键因素与场景分析
67 0
|
XML JSON JavaScript
【面试题精讲】常见序列化协议有哪些?
【面试题精讲】常见序列化协议有哪些?
|
7月前
|
存储 JSON 网络协议
【计算机网络】序列化,反序列化和初识协议
【计算机网络】序列化,反序列化和初识协议
|
7月前
|
C++
[序列化协议] --- protobuf
[序列化协议] --- protobuf
64 0
|
7月前
|
JSON 数据格式 C++
[序列化协议] --- JSON
[序列化协议] --- JSON
77 0
|
7月前
|
XML 存储 API
[序列化协议] --- XML
[序列化协议] --- XML
79 0
|
7月前
|
XML JSON Linux
[序列化协议] --- 简介
[序列化协议] --- 简介
64 0
|
7月前
|
存储 JSON 编解码
IM通讯协议专题学习(十):初识 Thrift 序列化协议
本文将带你一起初步认识Thrift的序列化协议,包括Binary协议、Compact协议(类似于Protobuf)、JSON协议,希望能为你的通信协议格式选型带来参考。
156 1