ProtoBuffer优势

  Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,他们用于 RPC 系统和持续数据存储系统。

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

Protobuf 的优点

  Protobuf 有如 XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。只需使用 Protobuf 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。

  它有一个非常棒的特性,即“向后”兼容性好,人们不必破坏已部署的、依靠“老”数据格式的程序就可以对数据结构进行升级。这样您的程序就可以不必担心因为消息结构的改变而造成的大规模的代码重构或者迁移的问题。因为添加新的消息中的 field 并不会引起已经发布的程序的任何改变。

Protobuf 语义更清晰,无需类似 XML 解析器的东西(因为 Protobuf 编译器会将 .proto 文件编译生成对应的数据访问类以对 Protobuf 数据进行序列化、反序列化操作)。

  使用 Protobuf 无需学习复杂的文档对象模型,Protobuf 的编程模式比较友好,简单易学,同时它拥有良好的文档和示例,对于喜欢简单事物的人们而言,Protobuf 比其他的技术更加有吸引力。

Protobuf 的不足

  Protbuf 与 XML 相比也有不足之处。它功能简单,无法用来表示复杂的概念。

  XML 已经成为多种行业标准的编写工具,Protobuf 只是 Google 公司内部使用的工具,在通用性上还差很多。

  由于文本并不适合用来描述数据结构,所以 Protobuf 也不适合用来对基于文本的标记文档(如 HTML)建模。另外,由于 XML 具有某种程度上的自解释性,它可以被人直接读取编辑,在这一点上 Protobuf 不行,它以二进制的方式存储,除非你有 .proto 定义,否则你没法直接读出 Protobuf 的任何内容。

 

 

转载于:https://www.cnblogs.com/yanghangjunHobot/p/8497058.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Protobuf是Google开发的一种二进制数据交换格式,其主要用于序列化结构化数据,使其能够在网络中进行传输。Protobuf定义了一种结构化数据格式,通过这种格式可以定义数据的类型和字段,然后通过编译器生成对应的代码,用于在不同的编程语言中进行数据的序列化和反序列化操作。 WebSocket是一种在单个TCP连接上进行全双工通信的协议,它提供了一种实时的、持久的、双向的通信通道,可以在客户端和服务器之间进行双向通信。与HTTP不同,WebSocket不需要通过不断的请求和响应来实现数据的交换,而是通过使用WebSocket协议,可以直接在连接建立后进行数据的传输和接收。 在前端与服务端进行通信时,可以使用Protobuf与WebSocket结合使用。通过在服务端和前端分别定义相同的数据结构,并使用Protobuf进行序列化和反序列化操作,可以将数据以二进制形式传输,并节省带宽和提高传输效率。在WebSocket连接建立后,可以直接通过发送和接收二进制数据来进行双向通信,而不需要通过HTTP请求和响应的方式。 通过使用Protobuf与WebSocket结合,可以在前端与服务端之间建立实时的、持久的、双向的通信通道,实现高效的数据交换和迅速的响应。同时,使用Protobuf进行数据序列化和反序列化,可以保证数据的一致性和准确性,提高数据交换的可靠性。因此,Protobuf与WebSocket结合可以在Web开发中发挥重要的作用,提升前端与服务端之间的通信效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值