47 天前 / 横云断岭
背景谈到RPC,就避免不了序列化的话题。 gRPC默认的序列化方式是protobuf,原因很简单,因为两者都是Google发明的,哈哈。 在当初Google开源protobuf时,很多人就期待是否能把RPC的实现也一起开源出来。没想到最终出来的是gRPC,终于补全了这一块。 跨语言的序列化方案事实上的跨语言序列化方案只有三个: protobuf, thrift, json。 json体积太大,并且缺少类型信息,实际上只用在RESTful接口上,并没有看到RPC框架会默认选json做序列化的。 国内一些大公司的使用情况: protobuf ,腾迅,百度等 thrift,小米,美团等 hessi......
167 天前 / 郭茄茄
点击上方蓝色文字“后端技术小黑屋”,关注茄子拯救世界的公众号吧~ 同时写Python和C++的程序员,往往会觉得C++写起来很累。(所谓“累守恒定律”: 程序执行时的累 + 程序员写代码时的累 = 恒定的累^_^)在处理ProtoBuf Message数据时,经常会有这样的需求,根据一个输入的字符串,找到Message中对应属性的取值;或者根据输入的字符串和...
241 天前 / fdr
0. 背景我之前在"如何评价ry(Ryan Dahl)的新项目deno"的回答中曾经写到:我比较好奇的是 deno 使用了 Protobuf,而没有使用 Mojo。既然目标是要兼容浏览器,却不使用 Mojo......但是从 issue 中可以看出,Ryan Dahl 之前是没有听说过 Mojo 的,但是他看完 Mojo 之后,依然觉得 Protobuf ...
269 天前 / 开发者头条
一. protocol buffers 序列化上篇文章中其实已经讲过了 encode 的过程,这篇文章以 golang 为例,从代码实现的层面讲讲序列化和反序列化的过程。举个 go 使用 protobuf 进行数据序列化和反序列化的例子,本篇文章从这个例子开始。先新建一个 example 的 message:syntax = "proto2"; packa...
349 天前 / 郭茄茄
上周帮同事排了一个protobuf中set_allocated_xxx的雷。L同事写的gtest单元测试总是报段错误,而且是在最后一个EXPECT_TRUE之后。由于测试的这段代码逻辑比较简单,就是把若干变量设置到protobuf格式的message中,然后再从message中取出来验证一遍。所以一开始,我们怀疑是gtest的使用姿势不对。尴尬的是,和以往代...
405 天前 / richardor
历史进程间数据交换有很多种方式,比如共享内存、网络通信、文件、数据库等等。如果你的数据并不是整齐有规律,且内存对齐的。大部分情况下,你都需要采用一种数据交换格式来描述你交换的数据,我们通常称之为序列化和反序列化。而描述这些数据的格式,我们通常称之为数据交换格式。最原始的数据交换格式就类似于tcp/ip那样的描述,一般称之为二进制数据格式。每一层协议都有包头和...
462 天前 / mr7
引言:TARS框架及自有TARS协议在腾讯内部始于2007年。Google Protocol Buffers于2008年7月对外公布。随着微服务架构的发展及ProtoBuf的优异表现,目前在互联网上有着大量应用。此次腾讯与科大讯飞进行深度技术合作,将ProtoBuf与TARS自身的编解码协议进行集成,并于今天将TARS-PB正式对外开源! protocol ...
618 天前 / 晋恒温
一、前言用过STF的都知道,只要用户点击使用按钮,这台手机就会被标记为占用状态,其他用户在设备列表立即就可以看到某人使用了手机,同时其他用户也不再能使用这台手机,这种即时的消息肯定不能靠接口等传统方式进行传递。事实上,在STF中,很多信息都是通过消息来传递的,这其中用到了很多工具,比如说zeromq和protobuf。下面根据我的理解讲一下STF中的消息传递...
667 天前 / 黄剑豪
This was originally made as an exercise as part of my interview process for joining Zenly. I thought it'd be good idea to opensource it, since it looked like a nice little introduc...
667 天前 / _ihhu
本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.Google Protocol Buffers简称 Protobuf, 是Google公司内部的混合语言数据标准. 它提供一种轻量, 高效的结构化数据存储结构.简介为什么学习protobuf 想通过protobuf的序列化来做一...
667 天前 / Albert-刘
在最近的一个公司项目中,我们实现了一个以面向对象原则为指导的 protobuf 协议(可在线浏览)。目前看来效果不错,已经推广到项目之外,在一定程度上也优化了产品设计。最开始的需求是实现一个混排的资讯和用户短图文系统,可以不断下拉刷新。开发(我本人)在协议设计时考虑到以后可能会集成更多的可展示对象,设计了一个“抽象帧容器列表”协议。该协议在一年多的产品演进中...
667 天前 / SwiftCafe
protobuf 是 Google 推出的一种数据传输格式,采用纯二进制数据传输,传输体积比 JSON 要小很多。数据传输格式如果你在开发一款 APP,就免不了要读取服务端的数据。 现在大家比较流行的做法是使用 JSON 作为数据传输格式。 JSON 的好处是数据结构清晰,并且可读性强。相比 XML 数据的体量要小很多。正是这么多的优点,让 JSON 几乎成...