Skip to content

【Go微服务】一文带你玩转ProtoBuf

本文为掘金社区首发签约文章,14天内禁止转载,14天后未获授权禁止转载,侵权必究!

前言

在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,在微服务架构中通常使用另外一个数据交换的协议的工具ProtoBuf

ProtoBuf也是我们做微服务开发,进行Go进阶实战中,必知必会的知道点。

今天就开始第一章内容:《一文带你玩转ProtoBuf》

5分钟入门

1.1 简介

你可能不知道ProtoBuf,但一定知道json或者xml,从一定意义上来说他们的作用是一样的。

ProtoBuf全称:protocol buffers,直译过来是:“协议缓冲区”,是一种与语言无关、与平台无关的可扩展机制,用于序列化结构化数据。

和json\xml最大的区别是:json\xml都是基于文本格式,ProtoBuf是二进制格式。

ProtoBuf相比于json\XML,更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。

我们只需要定义一次数据结构,就可以使用ProtoBuf生成源代码,轻松搞定在各种数据流和各种语言中写入、读取结构化数据。

1.2 安装

建议大家使用主流版本v3,这是官网下载地址:github.com/protocolbuf…

注意,不同的电脑系统安装包是不一样的:

小技巧:Mac查看自己的芯片类型点击左上角的苹果图标,再点击关于本机,就可以查看了。

image.png

比如,我的处理器芯片是intel的,下载安装包之后是这样的:

image.png

bin目录下的protoc是ProtoBuf的工具集,下文会重点介绍它的使用。

注意:我们需要将下载得到的可执行文件protoc所在的 bin 目录加到我们电脑的环境变量中。

Mac安装小技巧

如果你的Mac安装了brew,