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

protoc-gen-go‘ 不是内部或外部命令,也不是可运行的程序解决方法 'protoc-gen-go' 不是内部或外部命令,也不是可运行的程序解决方法 阅读详情

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

别再踩坑了!Windows下protocprotoc-gen-goprotoc-gen-go-grpc保姆级安装配置指南 本文提供Windows下protocprotoc-gen-goprotoc-gen-go-grpc的保姆级安装配置指南,帮助开发者避开常见陷阱,正确搭建Go开发环境。详细解析工具链关系,提供版本兼容性建议,并包含实战配置常见错误解决方案,确保顺利生成gRPC代码。 阅读详情

相关推荐

安装protocprotoc-gen-goprotoc-gen-go-grpc

是一个用于生成代码的工具,它可以根据 proto 文件生成C++、Java、Python、Go、PHP 等多重语言的代码,而 gRPC 的代码生成还依赖插件来配合生成 Go 语言gRPC 代码。

hblzong的博客 6033

protoc-gen-go 介绍与源代码分析

protoc-gen-go github 地址: https://github.com/golang/protobuf/tree/master/protoc-gen-go 它是 protoc 的一个插件,通过它, golang/protobuf 使 proto 定义文件,生成 golang 版本协议代码 protoc-gen-go 具有良好的代码结构,可以简单在 protoc-gen-go 代...

范安崇的博客 6828

Go语言Protobuf环境搭建:从protoc安装到代码生成全流程详解

Protocol Buffers(Protobuf)作为一种高效的结构化数据序列化协议,通过定义.proto文件实现跨语言数据交换。其核心原理是将结构化数据转换为紧凑的二进制格式,通过protoc编译器配合语言插件生成目标代码。在Go生态中,protoc-gen-go插件负责将.proto文件转换为Go结构体代码,这对微服务通信API定义具有重要技术价值。实际应用中,开发者常因环境变量配置、Go模块模式理解不足而遇到安装问题,特别是go install命令在非模块目录下要求明确版本标识符的典型错误。本文围

weixin_34409357的博客 330

protobuf与protoc-gen-go

什么是protobuf Protobuf(Protocol Buffer)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。(参考链接)

笔记 7088

protoc-gen-go 安装

proto-gen-go 插件怎么安装

41981DC的博客 4655

protoc-gen-go-mcp:为gRPC或ConnectRPC API生成MCP服务器的编译器插件

protoc-gen-go-mcp:为gRPC或ConnectRPC API生成MCP服务器的编译器插件 项目介绍 protoc-gen-go-mcp 是一款功能强大的开源编译器插件,专门为使用 Protocol Buffers 的开发者设计。它能自动为你的 gRPC 或 ConnectRPC API 生成 Model Context Protocol (MCP) 服务器。通过 protoc-ge...

gitblog_01009的博客 1103

golang grpc初识

消息就算需要传输的数据格式的定义。如果想要将消息类型用在RPC系统中,可以在.PROTO文件中定义一个RPC服务接口,protocolbuffer编译器会根据所选择的不同语言生成服务接口代码及存根。标识号:在消息体的定义中,每个字段都必须要有一个唯一的标识号,标识号是[0.2^29-1]范围内的一个整数。可以在其他消息类型中定义,使用消息类型,在下面的例子中,Person消息就定义在PersonInfo消息内。repeated:消息体中可重复字段,重复的值的顺序会被保留,在go中重复的会被定义为切片。

weixin_42413966的博客 779

Kubernetes控制平面组件:Kubelet详解(四):gRPC 与 CRI gRPC实现

本文是 kubernetes 的控制面组件 kubelet 系列文章第四篇,主要讲解了gRPC的基本概念,工作流程、关键特性等,并对protobuf的安装方法、使用方法 等做了介绍,随后给出了grpc服务端客户端编写的案例,最后看了下cri-api项目如何使用grpc协议定义了cri接口

a1369760658的博客 1382

RPC gRPC ProtoBuf之间的关系

文章目录RPCProtoBufmessage定义message扩展Services定义protoc(Protocol Compiler)gRPC编译gRPC(mac)编译examples/cpp/helloworld代码理解(examples/cpp/helloworld)proto文件(helloworld.proto)helloworld.grpc.pb.h(cc)文件同步RPC例子greeter_client.ccgreeter_server.cc异步RPC例子greeter_async_clien

123456789 3888

10个Docker-protoc高级技巧:从基础到生产级部署

Docker-protoc是一个强大的Protocol Buffer编译器容器化解决方案,专门为gRPCProtocol Buffer定义生成而设计。🚀 这个工具让开发者无需在本地安装复杂的protoc编译器各种语言插件,通过简单的Docker命令即可生成多种语言gRPC客户端服务端代码。无论你是刚接触Protocol Buffer的新手,还是需要管理复杂微服务架构的资深开发者,掌握这些

gitblog_00046的博客 430

从环境搭建开始学习使用Google Protocol BuffergRPC

参考:Google Protocol Buffer gRPC 简介 首先安装 golang/protobuf Golang 语言版本的 API 时,需要先安装标准 C++ 实现的 protocol buffer google/protobuf,使用linux的话就是先到github上下载对应的二进制文件 下载完解压之后将bin目录加入环境变量,如果没问题的话执行protoc -

ShanQuanQiang的专栏 1108

Go 语言中使用 Protocol Buffers

0. 背景 当前流行微服务框架,gRPCProtocol Buffers 是 Go 的微服务框架常用的框架。 1. Protocol Buffers 介绍 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。 ...

张云飞Vir的专栏 891

Docker-protoc社区贡献指南:如何参与项目开发维护

想要为开源项目贡献力量但不知从何入手?Docker-protoc项目为开发者提供了一个绝佳的入门机会!这个专门用于生成Protocol Buffer定义文件的Docker镜像项目,正在寻找热心的社区贡献者来共同完善维护。无论你是Docker专家、gRPC爱好者,还是想要学习开源协作的新手,这份完整的贡献指南都将为你指明方向。✨ ## 为什么选择贡献Docker-protoc项目? Docke

gitblog_00677的博客 485

搭建Golang gRPC环境:protocprotoc-gen-go protoc-gen-go-grpc 工具安装教程

本文开发环境,均为 windows 环境,mac 环境其实也类似 ~① 编译proto文件,相关插件 简单介绍:protoc是编译器,用于将.proto文件编译成代码;是一个插件,用于生成Go语言的数据结构代码;是另一个插件,用于生成Go语言gRPC服务代码。这三个工具共同支持在Go语言环境中使用protobufgRPC。在编译.proto文件时,go_out这两个参数分别会调用以下文件:go_out:这个参数会调用插件。插件的主要作用是将.proto文件转换为Go语言的代码。

m0_74823388的博客 2692

Go语言---linux下安装golang protoc详细教程以及完整安装protoc-gen-go工具

Protobuf 在 .proto 定义需要处理的结构化数据,可以通过 protoc 工具,将 .proto 文件转换为 C、C++、Golang、Java、Python 等多种语言的代码,兼容性好,易于使用。

m0_73537205的博客 2701

go使用protoc-gen插件编译protobuf文件及构建gRPC的服务

目录 1. 安装最新版本release版本的go环境 2. 安装最新版本protoc文件,我们使用version 3。 3. 默认protoc不支持go,需要安装go的扩展插件 4. 配置系统环境变量 5. 编写proto文件 6. 执行命令,生成go的pb文件 7. 编写RPC的serverclient 8.遇到问题 参考文章 gRPC使用参考: Quick start | Go | gRPC proto 3的语法参考: https://developers.goog.

程序猿CKeen的专栏 3035

Protocol Buffer 使用

文件目录下执行命令,则输出的代码便不是相同位置了。文件放到项目中,通过包管理器安装一个库,就会自动转换为相应的代码。文件为go语言,为了支持编译为go,需要安装。这个输出文件的路径是执行命令的路径,如果我们不在。指令是必须的,因为要输出具体的编程语言代码。这样在别的地方执行命令,生成的代码会跟。为编程语言,不一定要安装。插件,C#可以安装。需要注意的是,转换。例如C#只需要把。文件放在相同的位置。............

云满笔记 1438
上一篇: nginx支持的命令行参数
下一篇: 记录一次,docker和本机网络方面的实践经验
xiamu66
博客等级 码龄8年 67粉丝 · 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值