学习
实践
活动
工具
TVP
写文章

Protocol Buffer

Protocol Buffer 概述 什么是 Google Protocol Buffer? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 . Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。 您可以看到 Protocol Buffer 信息的表示非常紧凑,这意味着消息的体积减少,自然需要更少的资源。比如网络上传输的字节数更少,需要的 IO 更少等,从而提高性能。 大于 128 的数字,比如 300,会用两个字节来表示:1010 1100 0000 0010 参考 Protocol Buffer原理 ProtoBuf实战

44020

Protocol(协议)

Protocol(协议) (一) (1)简介 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。 4.Protocol声明的方法可以让任何类去实现,protocol就是协议。 5.OC不能继承多个类(单继承)但是能够遵守多个协议。 1.协议的定义 @protocol 协议名称 <NSObject> //方法声明列表 @end; 2.如何遵守协议 (1)类遵守协议 @protocol 类名:父类名 <协议名称1,协议名称2> @end (2)协议遵守协议 @protocol 协议名称 <其他协议名称> @end; 3.协议方法声明中的关键字 (1)required (默认)要求实现,若没有实现则警告但不报错 (2)optional

1.5K70
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    tcp protocol

    概念补充-TCP三次握手 TCP(Transmission Control Protocol)传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即

    26600

    Icmp protocol

    Exploring ICMP Protocol with An Example 2.ICMP时间戳请求 允许系统向另一个系统查询当前的时间。我们需要通过gettimeofday()获取日期。

    40210

    Protocol Buffers

    Protocol Buffers 是一种与语言无关,平台无关的可扩展机制,用于序列化结构化数据。 现在有许多框架等在使用Protocol Buffers。gRPC也是基于Protocol Buffers。 Protocol Buffers 目前有2和3两个版本号。 一、文档结构1) Protocol Buffers版本Protocol Buffers文档的第一行非注释行,为版本申明,不填写的话默认为版本2。 二、注释Protocol Buffers 提供以下两种注释方式。 四、消息类型Protocol Buffers使用message定义消息数据。

    97920

    Protocol Buffers 简介

    本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html Protocol Buffer 相关快速导航 链接名称 链接地址 Protocol Buffer 中文文档 http://docs.ossez.com/protocol-buffers-docs/index.html /protocol-buffers-demo-java 如果你在互联网上搜索的话,你可能会看到下面的说明文字。 我们才考虑到了 Protocol Buffer 提供的功能。 数据序列化和反序列化 序列化: 将数据结构或对象转换成二进制串的过程。 https://www.cwiki.us/display/ProtocolBuffers/Protocol+Buffers

    57920

    初试 Protocol Buffer

    接触到谷歌的序列化方法 protocol buffer, 感觉挺好玩的,所以了解下。 pb 是用于结构化数据序列化的灵活,高效,自动的方法,类似 xml,但是比之更加高效,简单。 Protocol buffer github 主页 定义一个 pb 消息 使用 pb 作为协议解析,首先需要根据自己的需要定义自己的协议文件 xxx.proto,然后借助 pb 提供的转换工具转换成使用语言的定义文件

    39630

    聊聊SWIM Protocol

    序 本文主要研究一下SWIM Protocol swim.png SWIM Protocol SWIM的全称是Scalable, Weakly-Consistent, Infection-Style , Processes Group Membership Protocol heartbeats 传统的诸如heartbeats这种membership protocols,每个node周期性地向网络中的所有其他节点发送 shuffle该node list 小结 SWIM的全称是Scalable, Weakly-Consistent, Infection-Style, Processes Group Membership Protocol 将需要dissemination的消息piggyback在ping/ack上,来实现类似gossip的消息传播,从而减少额外的单独信息传递开销 doc cornel edu SWIM.pdf SWIM Protocol explained THE SWIM MEMBERSHIP PROTOCOL Feel the Cloud with SWIM protocol random-probing based failure

    76510

    Protocol Buffers 编码

    当今云时代 gRPC 大行其道,gRPC 默认的序列化编码 Protocol Buffers 也跟着流行开来。都说 Protocol Buffers 效率很高,那到底高在哪里呢? 今天就跟大家讨论一下 Protocol Buffers 的编码规则。 Protocol Buffers 采用了另一种策略,给字段加编号。 也就是说,没有 proto 文件,你是没法对 Protocol Buffers 数据进行解码的。Protocol Buffers 还支持自定义消息字段和 repeated 字段。 写到这里,Protocol Buffers 的编码也就说得差不多了。

    11030

    Protocol Buffers 简介

    文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs Protocol Buffer 相关快速导航 链接名称 链接地址 Protocol Buffer 中文文档 http://docs.ossez.com/protocol-buffers-docs/index.html /protocol-buffers-demo-java 如果你在互联网上搜索的话,你可能会看到下面的说明文字。 我们才考虑到了 Protocol Buffer 提供的功能。 数据序列化和反序列化 序列化: 将数据结构或对象转换成二进制串的过程。 https://www.cwiki.us/display/ProtocolBuffers/Protocol+Buffers

    33530

    聊聊SWIM Protocol

    序 本文主要研究一下SWIM Protocol SWIM Protocol SWIM的全称是Scalable, Weakly-Consistent, Infection-Style, Processes Group Membership Protocol heartbeats 传统的诸如heartbeats这种membership protocols,每个node周期性地向网络中的所有其他节点发送heartbeat shuffle该node list 小结 SWIM的全称是Scalable, Weakly-Consistent, Infection-Style, Processes Group Membership Protocol 将需要dissemination的消息piggyback在ping/ack上,来实现类似gossip的消息传播,从而减少额外的单独信息传递开销 doc cornel edu SWIM.pdf SWIM Protocol explained THE SWIM MEMBERSHIP PROTOCOL Feel the Cloud with SWIM protocol random-probing based failure

    22730

    gRPC & Protocol Buffers

    客户端可以在本地存根调用这些方法,用合适的 protocol buffer 消息类型封装这些参数— gRPC 来负责发送请求给服务端并返回服务端 protocol buffer 响应。 1、Protocol Buffers Google Protocol Buffer( 简称 Protobuf) ,Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化 7、总结 Protocol Buffer 利用 varint 原理压缩数据以后,二进制数据非常紧凑,option 也算是压缩体积的一个举措。 所以 Protocol Buffer 非常适合内部服务之间 RPC 调用和传递数据。 Protocol Buffer 具有向后兼容的特性,更新数据结构以后,老版本依旧可以兼容,这也是 Protocol Buffer 诞生之初被寄予解决的问题。因为编译器对不识别的新增字段会跳过不处理。

    10520

    详解PROTOCOL BUFFERS

    Protocal Buffers的实现非常简单,本文将对比JSON协议,来聊聊Protocol Buffers的实现以及它高性能的秘密 2. 如果发送方和接收方都对对象的定义是明晰的,那么字段的名称也不要传递 Protocol Buffers对象定义 message Car { int32 age = 1; string color 参见我的文章VINT–针对INT型的压缩格式 由于Protocol Buffers 有type和length信息的存在,因此无需字段名称和JSON中的”{“等定界符 2.2 减少传输量(整型和浮点数) 在Protocol Buffers在极端场景下对JSON的速度优势,可以达到5倍左右,但是它本身与Gzip等比较,不算是一种压缩算法。它可以被表述为更为紧凑的序列化协议。 return b, nil } 参考资料 Protocol Buffers-encoding wikipedia–Protocol_Buffers 陶文-Protobuf 有没有比 JSON 快 5

    28320

    Google Protocol Buff

    一、参考资料 跨语言通信方案的比较—Thrift、Protobuf和Avro Google Protobuf 3版本介绍 Google Protocol Buffer 简单介绍 python+protobuf 在python中使用protocol buffer Protobuf3语言指南 Protobuf协议的Java应用例子 二、Protobuff安装 GitHub项目地址:Protocol Buffers 四、简单proto文件编写 Protocol Buffers是一个更灵活、高效、自动化的解决方案。它通过一个.proto文件描述我们想要的数据结构 比如: ? 上述定义了一个消息体,名称是Person,编译后等同于Python的模块、Java的类、C++的头和源文件,其中有两个字段,一个是32位的id,一个是字符串name 关于proto的字段类型有哪些,可以参考:Protocol Buffer 语法(syntax) 五、Windows下,Python配置probuff环境 切换到最开始我们下载的protocol的目录下,找到python文件夹,进去,依次执行 python setup.py

    44020

    Swift — 协议(Protocol

    协议的基本用法 ---- ▐ 2.1 协议语法 协议的定义方式与类、结构体和枚举的定义非常相似 1、基本语法 protocol SomeProtocol { // 这里是协议的定义部分 } 2 SomeProtocol { func someMethod1() func someMethod2() ->Int } 构造方法 protocol SomeProtocol { init(param: Int) } class SomeClass: SomeProtocol { required init(param: Int) { } } 异变方法 protocol 协议可以像其他普通类型一样使用,使用场景如下: 作为函数、方法或构造器中的参数类型或返回值类型 作为常量、变量或属性的类型 作为数组、字典或其他容器中的元素类型 protocol SomeProtocol 协议原理探索 ---- 在上面探索协议中的方法调用的时候,我们提到过 PWT 也就是 Protocol witness table,协议目击表,那么它存储在什么地方呢?

    18740

    protocol-buffers简介

    执行安卓 自动化测试开的时候,需要安装一个库 protocol-buffers,这个库强大的。来看看这么使用,是做什么的? https://developers.google.com/protocol-buffers/docs/pythontutorial 定义 与语言无关,平台无关的可扩展机制,用于序列化结构化数据。 https://developers.google.com/protocol-buffers/docs/pythontutorial 上面链接是python的demo。 这个写入数据 #!

    32230

    Google protocol buffer简介

    Google Protocol Buffer Google Protocol Buffer又简称Protobuf,它是一种很高效的结构化数据存储格式,一般用于结构化数据的串行化,即我们常说的数据序列化。 Protocol Buffer使用 1,定义Protocol Buffer消息 message SearchRequest { required string query = 1; optional 可以指定的最小的Tag为1, 最大为2^{29}-1或536,870,911.但是不能使用19000到19999之间的值,这些值是预留给protocol buffer的。 所以Google protocol buffer 定义了sint32, sint64这些数据类型,其采用zigzag编码。如下图: ? buffer格式是进步了很多,但是还是有一些问题待解决 Google protocol buffer的缺点

    1K60

    Protocol Buffers的应用

    Protocol Buffers的介绍 Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism (摘自Protocol Buffers官网) protocol buffers是google提供的一种将结构化数据进行序列化和反序列化的方法,其优点是语言中立,平台中立,可扩展性好,目前在google内部大量用于数据存储 Protocol Buffers在功能上类似XML,但是序列化后的数据更小,解析更快,使用上更简单。 Protocol Buffers具有以下特点: 平台无关、语言无关 高性能 比XML块20-100倍 体积小 比XML小3-10倍 使用简单 兼容性好 2、message的编码特点 Protocol Buffers Google Protocol Buffer 的使用和原理 Protocol Buffers and WCF http://blogs.msdn.com/b/dmetzgar/archive/2011

    336100

    简单介绍 protocol buffer

    protocol buffer protocol buffer 是谷歌的一款序列化结构数据的工具. 它有几个核心的概念: .proto文件: 定义protocol buffer message 类型的地方,这个类型指定了如何序列化你的结构数据,如下所示, 这个.proto文件定义了一个Person optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4; } protoc工具: protocol 参考资料 https://developers.google.com/protocol-buffers/docs/cpptutorial

    65560

    Swift 进阶: 协议 Protocol

    前言 ---- 本篇文章主要讲解 Swift 中常用的协议协议Protocol,主要分析protocol的用法及底层存储结构。 2. 、struct、enum都可以遵守协议,如果需要遵守多个协议,可以使用逗号分隔,例如 struct LGTeacher: Protocol1, Protocol2 { // body } 如果 class 中有superClass,一般是放在遵守的协议之前 struct LGTeacher: NSObject, Protocol1, Protocol2 { // body } ▐ 2.2 扩展:去掉Protocol中声明的方法 //如果去掉协议中的声明呢? 如果修改rectangle1的width属性的值(需要将width属性声明到protocolprotocol Shape { var width: Double {get set}

    31730

    扫码关注腾讯云开发者

    领取腾讯云代金券