news 2026/7/19 8:55:13

【web3基础】go-zero环境搭建(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【web3基础】go-zero环境搭建(一)

go-zero环境搭建

    • 📊 前言
    • WSL环境准备
    • go环境安装
      • 下载 Go 1.26.5
      • 解压到用户目录
      • 添加到 PATH
      • 验证安装
    • goctl安装
    • 安装protoc
        • 步骤1:
        • 安装 Go 插件:
        • 一键检查并补全(推荐)
        • 验证
    • 创建项目
      • 生成流程
      • 举例
        • 出现的问题
    • 工具介绍
      • 热加载配置
    • 总结:

关键词:go-zero, WSL, Go 语言, 微服务框架, 环境搭建

📊 前言

以下是go-zero环境搭建的整体流程图,展示了从WSL准备到项目创建的完整步骤:

实验环境: win11 + WSL

WSL环境准备

go环境安装

请在你的 WSL 终端中手动执行以下命令:

下载 Go 1.26.5

curl -L https://go.dev/dl/go1.26.5.linux-amd64.tar.gz -o /tmp/go1.26.5.linux-amd64.tar.gz

解压到用户目录

rm -rf ~/go
tar -C ~ -xzf /tmp/go1.26.5.linux-amd64.tar.gz

添加到 PATH

echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

验证安装

go version


goctl安装

在WSL中,执行:

go install github.com/zeromicro/go-zero/tools/goctl@latest

export PATH=$PATH:$HOME/go/bin

查看效果:

root@DESKTOP-TKVSD8M:~# goctl --version
goctl version 1.10.1 linux/amd64


安装protoc

步骤1:
PB_VERSION=25.1curl-LOhttps://github.com/protocolbuffers/protobuf/releases/download/v${PB_VERSION}/protoc-${PB_VERSION}-linux-x86_64.zipunzipprotoc-${PB_VERSION}-linux-x86_64.zip-d$HOME/.localexportPATH="$PATH:$HOME/.local/bin"source~/.bashrc
安装 Go 插件:
goinstallgoogle.golang.org/protobuf/cmd/protoc-gen-go@latest goinstallgoogle.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
一键检查并补全(推荐)

goctl env check --install --verbose --force


安装成功,但是有个警告,意思是 gopath应该不和go在一个目录。可以执行下面的命令区分开GOROOT(/go)和GOPATH(/gopath)了。

mkdir-p~/gopathecho'export GOPATH=$HOME/gopath'>>~/.bashrcecho'export PATH=$PATH:$GOPATH/bin'>>~/.bashrcsource~/.bashrc

执行后验证:

goenvGOPATH

出现下图代表成功:

~/gopath 刚创建时是空的。

GOPATH 是 Go 的工作空间,Go 会在需要时自动创建以下子目录:
~/gopath/
├── bin/ # 编译后的可执行文件(如 go install 安装的工具)
├── pkg/ # 编译后的包文件(缓存)
└── src/ # 你的 Go 项目源代码

你不需要手动创建这些目录,Go 会在使用时自动生成。

验证

root@DESKTOP-TKVSD8M:~/go-zero-learn/myservice# protoc --version
libprotoc 25.1

root@DESKTOP-TKVSD8M:~/go-zero-learn/myservice# protoc-gen-go --version
protoc-gen-go v1.36.11


创建项目

生成流程

定义接口: 编写 .api 或 .proto 文件

生成骨架代码:

  • API 服务:goctl api go -api hello.api -dir .

  • RPC 服务:goctl rpc protoc user.proto --go_out=. --go-grpc_out=. --zrpc_out=.

  • 填充逻辑:在 internal/logic/ 中实现业务代码

举例

goctl api new myservice
cd myservice && go mod tidy

goctl rpc new myservice
cd myservice && go mod tidy

出现的问题

go mod tidy报错解决方案:

root@DESKTOP-TKVSD8M:~/go-zero-learn/myservice#

● 网络仍然超时。尝试多个代理作为备选:

go env -w GOPROXY=https://goproxy.io,https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,direct

go env -w GOSUMDB=off

然后重试:

go mod tidy


工具介绍

热加载配置

安装命令

goinstall github.com/air-verse/air@latest

验证安装:

root@DESKTOP-TKVSD8M:~/go-zero-learn/go-rpc-demo/grpc-client#air -v


/ /\ | | | |)
/
/–\ || || _ v1.65.1, built with Go go1.26.5


在目标项目中直接输入:air
效果:

这里也不用输入: go run 命令了,air就等于热启动了。

🔄 热加载工作流程

air工具实现了代码修改后的自动重载,下图展示了其工作流程:

服务器进程Go编译器air工具开发者服务器进程Go编译器air工具开发者alt[编译成功][编译失败]loop[持续监控]开发过程中无需手动重启在项目目录执行 `air`监控文件变化(.go, .toml等)检测到文件修改触发Go重新编译编译项目代码返回编译结果停止旧进程启动新进程显示重启成功信息显示错误信息继续监控文件

总结:

  • 本文详细介绍了在 Windows 11 的 WSL 环境中搭建 go-zero 微服务框架开发环境的完整流程。
  • 从 WSL 环境准备开始,逐步讲解 Go 语言环境安装、goctl 命令行工具配置、protoc 编译器及其 Go 插件安装,
  • 到使用 goctl 创建 API 和 RPC 项目,并提供了常见网络问题的解决方案。
  • 最后还介绍了 air 热加载工具的安装与使用,帮助开发者实现代码修改后的实时重载。

通过本文的步骤,读者可以快速搭建起完整的 go-zero 开发环境,为后续微服务开发打下坚实基础。


本文完

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 8:54:02

Ext.NET框架:企业级Web开发的高效解决方案

1. Ext.NET框架概述:企业级Web开发的瑞士军刀 Ext.NET是基于Ext JS的ASP.NET组件库,它将Ext JS的强大功能与.NET生态无缝集成。作为一套成熟的企业级前端解决方案,Ext.NET通过服务端控件的方式为.NET开发者提供了构建复杂Web应用的捷径。我在…

作者头像 李华
网站建设 2026/7/19 8:53:50

TI DCAN接口寄存器深度解析:从消息对象到DMA高效通信

1. DCAN接口寄存器:连接CPU与CAN总线的桥梁 在嵌入式开发,尤其是汽车电子和工业控制领域,控制器局域网(CAN)总线是连接各个电子控制单元(ECU)的神经系统。我们通常关注CAN协议本身——帧格式、仲…

作者头像 李华
网站建设 2026/7/19 8:53:41

Unity坐标系详解:从基础概念到实战应用

1. 项目概述:为什么Unity坐标系是开发者的“第一课”? 如果你刚接触Unity,或者已经用它做过几个小Demo,可能会觉得坐标系不就是X、Y、Z三个轴嘛,有什么好“详解”的?我刚开始也是这么想的,直到我…

作者头像 李华
网站建设 2026/7/19 8:53:25

TI C2000 ePWM硬件保护机制:Trip-Zone与数字比较器实战详解

1. 项目概述与核心价值在工业电机驱动、数字电源或者任何需要高可靠性功率控制的嵌入式系统里,PWM波形的生成只是基本功,真正的挑战在于如何让系统在“出事”的瞬间做出正确且迅速的反应。想象一下,你的伺服驱动器正在全速运转,突…

作者头像 李华
网站建设 2026/7/19 8:52:57

纽约Airbnb数据EDA实战:从清洗到业务决策的完整链路

1. 项目概述:为什么从纽约Airbnb数据开始做探索性分析? 如果你刚学完Pandas和Matplotlib,手头有一堆CSV文件却不知道从哪下手,我建议你直接打开纽约市Airbnb公开数据集——它不是教科书里那种“理想化”的示例数据,而是…

作者头像 李华
网站建设 2026/7/19 8:51:32

TI EDMA高级特性解析:QDMA映射、区域管理与中断机制实战

1. 项目概述与核心价值 在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP平台上,数据搬移的效率直接决定了整个系统的实时性和吞吐量。CPU如果深陷于数据搬运的泥潭,就无法专注于核心的信号处理或控制算法。这时,直接内存访问&a…

作者头像 李华