ProtoBuf认识与Windows下的安装

protobuf简介

Protobuf Protocol Buffers 的简称,它是 Google 公司开发的一种数据描述语言,是一种轻便高效的结 构化数据存储格式,可以用于结构化数据,或者说序列化。它很适合做数据存储 RPC 数据交换格 。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。他是一 种灵活,高效,自动化的机制,用于序列化结构化数据,对比于 XML JSON ,他更小,更快、更简 单。总之他是微服务中需要使用的东西。
Protobuf 刚开源时的定位类似于 XML JSON 等数据描述语言,通过附带工具生成代码并实现将结构化 数据序列化的功能。这里我们更关注的是Protobuf 作为接口规范的描述语言,可以作为设计安全的跨语 言RPC 接口的基础 工具。
需要了解两点
1. protobuf 是类似与 json 一样的数据描述语言(数据格式)
2. protobuf 非常适合于 RPC 数据交换格式

protobuf的优势和劣势:

优势:
1 :序列化后体积相比 Json XML 很小,适合网络传输
2 :支持跨平台多语言
3 :消息格式升级和兼容性很好
4 :序列化反序列化速度很快,快于 Json 的处理速度
劣势:
1 :应用不够广 ( 相比 xml json)
2 :二进制格式导致可读性差
3 :缺乏自描述

protobuf的安装 

1 、安装 protobuf
GitHub - protocolbuffers/protobuf: Protocol Buffers - Google's data interchange format
点击latest,然后找到win-64的压缩包
下载后解压,添加到环境变量
我的安装目录:D:\protoc-25.3-win64\bin
环境变量打开:我的电脑->右键属性-》高级系统设置-》环境变量-》系统变量-》找到path-》编辑-》保存即可
win+r,打开cmd,输入 
protoc --version

显示版本即可

protobufgo语言插件protoc-gen-go插件

go install github.com/golang/protobuf/protoc-gen-go@latest

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

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

相关文章

WebServer -- 定时器处理非活动连接(上)

目录 🍍函数指针 🌼基础知识 🐙整体概述 🎂基础API sigaction 结构体 sigaction() sigfillset() SIGALRM, SIGTERM 信号 alarm() socketpair() send() 📕信号通知流程 统一事件源 信号处理机制 &#x…

2024全球网络安全展望|构建协同生态,护航数字经济

2024年1月,世界经济论坛发布《2024全球网络安全展望》报告,指出在科技快速发展的背景下,网络安全不均衡问题加剧,需加强公共部门、企业组织和个人的合作。 报告强调,面对地缘政治动荡、技术不确定性和全球经济波动&am…

基于springboot+vue的美发门店管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Python 高级语法:一切皆对象

1 “一切皆对象”是一种核心设计哲学 在编程领域,特别是面向对象编程(OOP)中,“一切皆对象”是一种核心设计哲学。这种哲学主张,无论是数据、函数、还是更复杂的结构,都可以被视为对象,并赋予…

信息安全基本概念汇总

目录 一、安全加密算法相关 二、信息安全需求规范相关 三、安全启动 四、安全更新 五、安全通信SecOC 六、HSM安全固件整体架构 一、安全加密算法相关 基于Autosar的网络安全理解_搜狐汽车_搜狐网 基于AES的CMAC算法、MAC、Hash、数字签名之间的关系_aes cmac-CSDN博客…

Cartographer框架简述

catographer框架分为前端和后端 前端包括雷达数据处理;位姿预测;扫描匹配和栅格地图更新。 后端包括后端:线程池任务与调度;向位姿图添加节点,计算节点的子图内约束和子图间约束(回环检测)&…

C++之Easyx——图形库的基本功能(1):界面操作

最近,我觉得使用控制台编写游戏太没意思了!! 所以我开始研究图形库了~ 一、setinitmode 函数定义 void EGEAPI setinitmode(int mode, int x CW_USEDEFAULT, int y CW_USEDEFAULT); //设置初始化模式,mode0为普通&#xff0c…

Spark中写parquet文件是怎么实现的

背景 本文基于 Spark 3.5.0 写本篇文章的目的是在于能够配合spark.sql.maxConcurrentOutputFileWriters参数来加速写parquet文件的速度,为此研究一下Spark写parquet的时候会占用内存的大小,便于配置spark.sql.maxConcurrentOutputFileWriters的值&#…

Javascript怎么输出内容?两种常见方式以及控制台介绍

javascript是一种非常重要的编程语言,在许多网页中它被广泛使用,可以实现许多交互效果和动态效果。输出是javascript中最基本的操作之一,下面将介绍两种常见的输出方式。 一、使用console.log()函数输出 console.log()函数是常用的输出函数…

Jmeter实现阶梯式线程增加的压测

安装相应jmeter 插件 1:安装jmeter 管理插件: 下载地址:https://jmeter-plugins.org/install/Install/,将下载下来的jar包放到jmeter文件夹下的lib/ext路径下,然后重启jmeter。 2:接着打开 选项-Plugins Ma…

在Linux上安装Docker: 一站式指南

Docker 是一款强大的容器化平台,为开发者提供了一种轻松打包、发布和运行应用的方式。在本文中,我们将探讨如何在Linux操作系统上安装Docker,为你提供一站式指南。 步骤1: 卸载旧版本 在安装新版Docker之前,建议先卸载旧版本&am…

三十年一个大轮回!日股突破“泡沫时期”历史高点

2月22日周四,英伟达四季报业绩超预期,而且本季度业绩指引非常乐观,提振美股股指期货并成为芯片股和AI概念股情绪的重要催化剂。今日亚洲芯片股和AI股起飞,日本在芯片股的带动下突破1989年泡沫时期以来的历史最高收盘价。 美股方面…

我之前炒股亏麻了,找百融云AI Agent谈了谈心

春节之前,A股和H股都跌麻了,但是机构的路演和调研反而多了。因为:写不完的安抚、说不完的陪伴、听不完的客户指责、以及捡不完的AH股便宜货。 有一位血液里流淌着美式咖啡的职场白领,虽然这些年在股市过得很不如意,但…

C语言---链表

一.定义 链表是由一系列节点组成,每个结点包含两个域,一个是数据域,数据域用来保存用户数据,另一个是指针域,保存下一个节点的地址。链表在内存中是非连续的。 二.分类 静态链表 动态链表 单向链表 双向链表 循环链…

maven使用问题及解决办法汇总

文章目录 1、maven clean后打包出现Cannot create resource output directory2、把已有jar包打包进本地maven仓库 1、maven clean后打包出现Cannot create resource output directory 主要原因是target目录被别的程序占用了,最笨的办法是重启电脑,当然也…

C++跨模块释放内存

linux一个进程只有一个堆,不要考虑这些问题,但是windows一个进程可能有多个堆,要在对应的堆上释放。 一, MT改MD 一个进程的地址空间是由一个可执行模块和多个DLL模块构成的,这些模块中,有些可能会链接到…

代码随想录训练营第29天| 491.递增子序列、46.全排列、47.全排列 II

491.递增子序列 题目链接&#xff1a;491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<List<Integer>> ans new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {backtrack(nums, …

(十三)【Jmeter】线程(Threads(Users))之tearDown 线程组

简述 操作路径如下: 作用:在正式测试结束后执行清理操作,如关闭连接、释放资源等。配置:设置清理操作的采样器、执行顺序等参数。使用场景:确保在测试结束后应用程序恢复到正常状态,避免资源泄漏或对其他测试的影响。优点:提供清理操作,确保测试环境的整洁和可重复性…

租用海外服务器,自己部署ChatGPT-Next-Web,实现ChatGPT聊天自由,还可以分享给朋友用

前言 如果有好几个人需要使用ChatGPT&#xff0c;又没有魔法上网环境&#xff0c;最好就是自己搭建一个海外的服务器环境&#xff0c;然后很多人就可以同时直接用了。 大概是情况是要花80元租一个一年的海外服务器&#xff0c;花15元租一个一年的域名&#xff0c;然后openai 的…

centos安装扩展

centos下安装php扩展时遇到的问题php 1.imapgit cd /root/php-5.6.27/ext/imap /usr/local/php/bin/phpize ./configure --prefix/usr/local/imap 错误1github configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happe…