热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

golang安装protocprotocgengo,以及grpc和protocolbuffer的一些理解。

proto理解:ProtoBuf是一种数据表达方式,根据G家自己的描述,应该叫做数据交换格式,注意这里使用的是交换字眼&#x

proto理解:
ProtoBuf 是一种数据表达方式,根据 G 家自己的描述,应该叫做数据交换格式,注意这里使用的是 交换 字眼,也就是说着重于在数据的传输上,有别于 TOML 和 XML 较常用于配置(当然 WebService 一套也是用于数据交换)。

不同于 json 可以直接被读取解析,ProtoBuf 因为一些元数据,所以在使用之前,我们需要通过工具生成 Model 类,然后再使用,工具安装可以参考官方的文档进行安装,安装完成之后我们直接使用命令生成即可。
链接:https://www.cnblogs.com/makor/p/protobuf-and-grpc.html
默认情况下,gRPC 使用 Protocol Buffers,这是 Google 用于序列化结构化数据的成熟开源机制(尽管它可以与 JSON 等其他数据格式一起使用)。

grpc理解:
服务定义:
与许多 RPC 系统一样,gRPC 基于定义服务的思想,指定可以远程调用的方法及其参数和返回类型。

高效的远程过程调用
gRPC 可以使用proto buffer作为其接口定义语言 (IDL) 和底层消息交换格式。
在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使用者可以更容易创建分布式应用程序和服务。

在服务端,服务端实现这个接口并运行一个 gRPC 服务器来处理客户端调用。在客户端,客户端有一个存根(在某些语言中仅称为客户端),它提供与服务器相同的方法。

在这里插入图片描述
gRPC 简介–》参考链接:https://grpc.io/docs/what-is-grpc/introduction/
核心概念、架构和生命周期–》参考链接:https://grpc.io/docs/what-is-grpc/core-concepts/

1、安装protoc
首先现在protoc的压缩包,下载地址:https://github.com/protocolbuffers/protobuf/releases
官方文档地址:https://grpc.io/docs/protoc-installation/

在这里插入图片描述

解压之后,然后进入bin文件夹中,找到可执行文件:protoc.exe 。然后将它放入到$PATH中,可以在环境变量中添加当前路径到path的方式实现。也可以复制这个exe到已有的path中。比如我就是直接将其复制到了go的安装目录的/bin下。

使用 protoc --version 可以查看当前protoc的版本

2、安装protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.2

参考链接:https://go-zero.dev/protoc-install.html
我在运行上述命令的时候,出现以下情况。

credentials\credentials.go:31:2: github.com/golang/protobuf@v1.3.3: Get "https://proxy.golang.org/github.com/golang/protobuf/@v/v1.3.3.zip": dial tcp 142.251.43.17:443: connectex: A connection attempt failed because the connected pa
rty did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

解决办法:
设置全局代理:
go env -w GOPROXY=https://goproxy.cn,direct
执行完毕,proto-gen-go.exe出现在golang安装path目录下的bin目录中。


推荐阅读
author-avatar
清明如月_213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有