Protobuf(三):理论学习,简单总结

1. Protocol Buffers概述

  • Protocol Buffers(简称protobuf),是谷歌用于序列化结构化数据的一种语言独立、平台独立且可扩展的机制,类似XML,但比XML更小、更快、更简单
  • protobuf的工作流程如图所示
    在这里插入图片描述

1.1 protobuf的优点

  • 优点一: 支持多种语言(Cross-language Compatibility)
    • 使用protobuf语法定义好数据结构后(.proto文件中的message),可以将其转化为各种语言的源代码,从而轻松地从/向各种数据流中读取/写入结构化数据
    • 例如,基于同一个.proto文件,你可以使用protoc命令编译出Java、Python、C++、Go等各种语言的源码
    • 具体支持哪些语言,可以参考:Third-Party Add-ons for Protocol Buffers
  • 优点二: 跨项目,一次定义,多处使用(Cross-project Support)
    • 可以在特定项目代码库之外的.proto文件中定义message,然后在多个项目中使用
    • 例如,你可以使用Java语言将序列化数据,使用Go语言反序列化数据
  • 优点三: 可扩展,支持向后兼容(backwards compatibility,大部分软件产品都具备)、向前兼容(forward compatibility,不太常见)
    • 增加字段:旧代码读取新message,将会忽略新增加的字段;新代码读取旧message,新增加的字段会被赋予默认值
    • 删除字段:旧代码读取新message,已删除的字段会被赋予默认值;新代码读取旧message,已删除的字段会被忽略?
  • 总结: protobuf是Google内部最常用的数据格式,广泛应用于服务器间的通信、磁盘上数据的归档存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第17章】MyBatis-Plus自动维护DDL

文章目录 前言一、功能概述二、注意事项三、代码示例四、实战1. 准备2. ddl配置类3. 程序启动4. 效果(数据库) 总结 前言 在MyBatis-Plus的3.5.3版本中,引入了一项强大的功能:数据库DDL(数据定义语言)表结构的自动维护。这一功能…

告别高查重率,AI降重工具帮你快速过关

高查重率是许多毕业生的困扰。通常,高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法,如修改文本和增添原创内容,虽必要但耗时且成效不一。 鉴于此,应用AI工具进行AIGC降重成为了一个高效的解决方案。这些工具…

Cloudflare 推出一款免费对抗 AI 机器人的可防止抓取数据工具

上市云服务提供商Cloudflare推出了一种新的免费工具,可防止机器人抓取其平台上托管的网站以获取数据以训练AI模型。 一些人工智能供应商,包括谷歌、OpenAI 和苹果,允许网站所有者通过修改他们网站的robots.txt来阻止他们用于数据抓取和模型训…

Word “当前页“ 与 “前一页“ (含部分内容)间有大半页空白,删除空白方法

鼠标光标选中需要向上移的句子,右键点击“段落”,然后在跳出的窗口中按照“换行和分页”中的红色方框内取消勾选后,点击确定即可。

@化工人|人员定位系统如何选择?从了解定位技术开始

提及化工安全管理所面临的主要难题,大家往往会想到”人难管、事难办、责难负“这三难,而每一难都离不开”人“这个主体。因此,在企业日渐实现数字化转型的今天,越来越多的化工企业选择建设以人员定位系统为核心的企业安全生产信息…

实时数仓Hologres OLAP场景核心能力介绍

作者:赵红梅 Hologres PD OLAP典型应用场景与痛点 首先介绍典型的OLAP场景以及在这些场景上的核心痛点,OLAP典型应用场景很多,总结有四类:第一类是BI报表分析类,例如BI报表,实时大屏,数据中台等…

Web前端开发——HTML快速入门

HTML:控制网页的结构CSS:控制网页的表现 一、什么是HTML、CSS (1)HTML (HyperText Markup Languaqe:超文本标记语言) 超文本:超越了文本的限制,比普通文本更强大。除了…

Aigtek高压功率放大器主要应用场景是什么

高压功率放大器是一种关键的电子设备,其主要功能是将低电压信号放大到较高电压水平,以满足特定应用的需求。这种类型的放大器在各种领域都发挥着至关重要的作用。安泰电子官网将为大家介绍高压功率放大器的主要应用场景,并介绍其在这些领域中…

关于Web开发的详细介绍

目录 一、什么是Web? 二、Web网站的工作流程和开发模式 (1)简单介绍 (2)工作流程 1、第一步 2、第二步 (3)Web网站的开发模式 1、前后端分离开发模式 ​编辑2、混合开发模式 三、开发W…

智慧矿山:EasyCVR助力矿井视频多业务融合及视频转发服务建设

一、方案背景 随着矿井安全生产要求的不断提高,视频监控、数据传输、通讯联络等业务的需求日益增长。为满足矿井生产管理的多元化需求,提高矿井作业的安全性和效率,TSINGSEE青犀EasyCVR视频汇聚/安防监控综合管理平台,旨在构建一…

一款优秀、亮眼的开源堡垒机

介绍 在运维的日常工作中,登陆服务器操作不可避免,为了更安全的管控服务器,但凡有点规模的公司都会上线堡垒机系统,堡垒机能够做到事前授权、事中监控、事后审计,同时也可以满足等保合规要求。 提到堡垒机&#xff0…

3D虚拟会议室打破传统会议局限,提供沉浸式会议体验

一、身临其境的虚拟会议体验 1、沉浸感提升参会效果 3D虚拟会议室借助虚拟现实技术为用户创造出一个仿佛置身真实会议场所的感觉。用户可以进入一个虚拟的会议室,感受到空间的深度和互动性。这种身临其境的体验,使得参会者不仅仅是被动地观看屏幕&…

音乐剪辑免费软件有哪些?7个音频剪辑技巧!

音乐剪辑免费软件有很多,但是适合自己或适合剪辑小白的却屈指可数。 音频剪辑软件千千万,如果是没有任何剪辑经验的小白用户,个人建议使用知名度较高的音频剪辑软件。不管是免费还是收费的音频剪辑软件,只要能够解决问题&#xf…

[Mysql] 的基础知识和sql 语句.教你速成(下)——数据库的约束篇

目录 前言 约束 一.我们为什么需要约束 二.常见的约束类型 NOT NULL 约束 UNIQUE 约束 DEFAULT 约束 PRIMARY KEY FOREIGN KEY CHECK约束 原因: 结尾 前言 距离上篇的更新已经快两周了,这个时候大伙都已经考完了吧!现在更新多少有点马后炮,但是没办法呀…

Spring源码十:BeanPostProcess

上一篇Spring源码九:BeanFactoryPostProcessor,我们看到ApplicationContext容器通过refresh方法中的postProcessBeanFactory方法和BeanFactoryPostProcessor类提供预留扩展点,他可以在Spring容器的层面对BeanFactroy或其他属性进行修改&#…

科技赋能智慧应急:“数字孪生+无人机”在防汛救灾中的应用

近期,全国多地暴雨持续,“麻辣王子工厂停工”“水上派出所成水上的派出所了”等相关词条冲上热搜,让人们看到了全国各地城市内涝、洪涝带来的严重灾情。暴雨带来的影响可见一斑,潜在的洪水、泥石流、山体滑坡等地质灾害更应提高警…

MYSQL的简易安装

先下载好安装包 官网:https://www.mysql.com 双击运行进入界面 打开之后将左侧的产品移到右侧 点击使用的产品设置路径 之后一直下一步即可 选择主机类型 同时要记住端口号 设置密码 设置系统服务列表中的服务名称 之后一直下一步就可以了 安装完成记得配置环…

解决前端登录成功之后,往后端发请求携带cookie问题

项目背景: 今天在做伙伴匹配系统: 我现在实现的功能是: 在我登录成功之后,就进入了主页(默认页),在我访问用户页的时候产生的问题 首先说明一下这个Cookie的问题: 我们登录成功…

Echarts折线图 自适应窗口大小

实现效果&#xff1a; 代码&#xff1a; <template><div class"echarts"><div class"select-box"><div v-for"(item,index) in trendList":key"index":class"[period item.id?active:,item]"click&…

2024微信小程序期末大作业-点奶茶微信小程序(后端nodejs-server)(附下载链接)_微信小程序期末大作业百度网盘下载

菜单展示 购物车展示&#xff1a; 提交订单&#xff1a; 支付详情页展示&#xff1a; 订单查看&#xff1a; 查看历史消费&#xff1a; 部分代码展示&#xff1a; <!--pages/home/home.wxml--> <block wx:for"{{listData}}" wx:key"itemlist&qu…