golang 安装protoc protoc-gen-go,以及grpc和protocol buffer的一些理解。

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

protoc-gen-go安装
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
参考链接:https://icode.best/i/60507746206322

或者:

git clone -b v1.30.0 https://github.com/grpc/grpc-go  #克隆项目
cd cmd/protoc-gen-go-grpc   #进入到指定目录(如果你不是命令行操作,那就直接文件管理器找到这个目录,再在这里打开命令行)
go install .

参考链接:https://blog.csdn.net/qq_42031483/article/details/115208041

我在运行上述命令的时候,出现以下情况。

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目录中。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值