Go-Zero微服务框架——学习笔记
1、快速安装运行视频地址https://www.bilibili.com/video/BV1vuVyzwEGN/?spm_id_from333.337.search-card.all.clickvd_source707ec8983cc32e6e065d5496a7f79ee6需要安装golandgoctlgo install github.com/zeromicro/go-zero/tools/goctllatestwindows下不用安装protobufmac和linux下需要安装建立一个api模版goctl api new 名称创建微服务项目后需要go mod tidy用这样一个bat可以为多个项目一次性tidyecho off setlocal enabledelayedexpansionechoBatch run go mod tidyrem script rootsetroot%~dp0remsourcebat pathsetsrc%root%proto-gen.batrem scan first-level subdirsfor/d %%din(%root%*)do(rem run tidyifgo.mod existsifexist%%~fd\go.mod(echo.echoProcessing: %%~fdpushd%%~fdgo mod tidypopd)else(echoNo go.mod, skip: %%~fd))echo.echoAlldonepause输入go run 名称.go 运行程序2、Air 热加载工具和Thunder Clienthttps://www.bilibili.com/video/BV1vuVyzwEGN?spm_id_from333.788.player.switchvd_source707ec8983cc32e6e065d5496a7f79ee6p2Airgo install github.com/air-verse/airlatest运行 air -v查看是否安装完成在某一个项目下运行air一旦代码修改air会自动更新不用重启goThunder Client这个插件和postman后apifox是差不多的我选择用国产的apifox不记录使用此插件3、API项目结构解析视频地址https://www.bilibili.com/video/BV1vuVyzwEGN?spm_id_from333.788.videopod.episodesvd_source707ec8983cc32e6e065d5496a7f79ee6p3hello/ ├── go.mod# Go 模块定义模块名 hello1依赖 go-zero v1.10.2├── go.sum# 依赖校验锁文件├── hello.api# API 定义文件DSLgoctl 生成代码的源├── hello.go# 程序主入口 main 函数├── etc/ │ └── hello-api.yaml# 运行时配置文件├── internal/# 内部包不对外暴露│ ├── config/ │ │ └── config.go# 配置结构体定义│ ├── handler/# HTTP 处理层Controller 层│ │ ├── hellohandler.go# 单个接口的处理器│ │ └── routes.go# 路由注册自动生成勿改│ ├── logic/ │ │ └── hellologic.go# 业务逻辑层Service 层│ ├── svc/ │ │ └── servicecontext.go# 服务上下文依赖容器│ └── types/ │ └── types.go# 请求/响应结构体定义自动生成勿改└── tmp/ └── main.exe# 编译产物4、RPC项目结构解析视频地址https://www.bilibili.com/video/BV1vuVyzwEGN?spm_id_from333.788.videopod.episodesvd_source707ec8983cc32e6e065d5496a7f79ee6p3mall/user/ ├── go.mod# Go 模块定义模块名 mall/user├── go.sum# 依赖校验锁文件├── user.go# 程序主入口 main 函数├── user.proto# protobuf 接口定义生成代码的源├── etc/ │ └── user.yaml# 运行时配置文件├── internal/# 内部包不对外暴露│ ├── config/ │ │ └── config.go# 配置结构体定义│ ├── server/ │ │ └── userserver.go# gRPC 服务端实现自动生成勿改│ ├── logic/ │ │ └── getuserlogic.go# 业务逻辑层│ └── svc/ │ └── servicecontext.go# 服务上下文依赖容器├── user/# protoc 生成的 gRPC 代码│ ├── user.pb.go# 消息结构体自动生成勿改│ └── user_grpc.pb.go# gRPC 服务端/客户端桩自动生成勿改├── userclient/ │ └── user.go# RPC 客户端封装给调用方用自动生成勿改└── data/ └── etcd/# etcd 数据目录运行时生成5. gRPC demo 代码生成https://www.bilibili.com/video/BV1vuVyzwEGN?spm_id_from333.788.videopod.episodesvd_source707ec8983cc32e6e065d5496a7f79ee6p4生成rpcgoctl rpc new 名称一般会建立一个目录比如mall然后生成多个rpc项目比如userorder等建立好项目后rpc代码就生成了如果需要再生成可以运行goctl rpc protoc “order.proto” --go_out. --go-grpc_out. --zrpc_out.可以做成一个bat文件进行生成echo off setlocal enabledelayedexpansion rem switch to batdirso it runs correctly from anywherecd/d%~dp0rem check goctl where goctlnul2nuliferrorlevel1(echo[error]goctl not found,installit first:echogoinstallgithub.com/zeromicro/go-zero/tools/goctllatest pauseexit/b1)rem loop .proto filesincurrentdir(no hardcoded name, worksforany module)setfound0for%%fin(*.proto)do(setfound1echo.echoGenerating: %%fgoctl rpc protoc%%f--go_out. --go-grpc_out.--zrpc_out.iferrorlevel1(echo[fail]%%f)else(echo[ok]%%f))rem no proto foundif!found!0(echo[hint]no .protoin%~dp0echoput this batinthe moduledirnext to .proto pauseexit/b1)rem tidy depsifgo.mod existsifexist go.mod(echo.echogo mod tidygo mod tidy)else(echo[hint]no go.mod here, skip tidy)echo.echoAlldonepause需要运行Etcd这是一个发布地址的组件win下自带模块其他系统需要安装如果没有启动可以运行这bat文件将其启动echo off :: 启动 etcd 服务注册中心 :: 数据目录放在 user 模块下避免散落在项目根目录setETCD_DIR%TEMP%\etcd\etcd-v3.5.21-windows-amd64\etcd.exesetDATA_DIR%~dp0data\etcdifnot exist%DATA_DIR%mkdir%DATA_DIR%echoStarting etcd...echoData dir: %DATA_DIR%%ETCD_DIR%--data-dir%DATA_DIR%也可以先在etc\user.yaml里先去掉Etcd使用apifox选择user.proto后就自动生成接口可以调用6.Go-Zero 的配置管理https://www.bilibili.com/video/BV1vuVyzwEGN?spm_id_from333.788.videopod.episodesvd_source707ec8983cc32e6e065d5496a7f79ee6p5配置文件etc\hello-api.yaml可以加入Log打印设置屏蔽info日志Name: hello-api Host:0.0.0.0 Port:8888# 日志级别设为 error屏蔽 info 级别的 HTTP 访问日志Log: Level: error加载配置文件的代码逻辑varconfigFileflag.String(f,etc/hello1-api.yaml,the config file)funcmain(){flag.Parse()varc config.Config conf.MustLoad(*configFile,c)...}把yaml的地址和config的结构体都交给conf.MustLoad进行建造

相关新闻

Dev-C++下载安装全攻略:从版本选择到高效配置,C/C++初学者必看

Dev-C++下载安装全攻略:从版本选择到高效配置,C/C++初学者必看

1. 项目概述:为什么Dev-C依然是C/C初学者的首选 如果你正准备开始学习C或C编程,或者需要一款轻量级、不折腾的集成开发环境(IDE)来完成一些简单的编程任务,那么“Dev-C”这个名字你肯定绕不开。作为一个在编程教学和入…

2026/8/12 18:57:39 阅读更多 →
团队协作中的Git分支管理策略与实践

团队协作中的Git分支管理策略与实践

1. 为什么多人开发必须重视分支管理 第一次参与团队协作开发时,我犯了个典型错误——直接在master分支上提交代码。结果第二天早会时,项目经理发现生产环境突然多出一堆未测试的功能,而另一位同事的紧急修复被我的提交完全覆盖。这次事故让我…

2026/8/12 18:57:39 阅读更多 →
测试工程师效率革命:从Shell脚本到AI Copilot的终端工具链实战

测试工程师效率革命:从Shell脚本到AI Copilot的终端工具链实战

1. 项目概述:为什么测试工程师需要武装自己的终端? 如果你是一名软件测试工程师,每天的工作还停留在点点点、手动执行重复的测试用例、在多个窗口间来回切换查看日志和报告,那么你可能已经陷入了效率的泥潭。我干了十多年测试&…

2026/8/12 18:57:39 阅读更多 →

最新新闻

Webpack 迁 Vite 别硬切:双构建与 Legacy 语法兼容

Webpack 迁 Vite 别硬切:双构建与 Legacy 语法兼容

Webpack 迁 Vite 别硬切:双构建与 Legacy 语法兼容 Webpack 项目迁移到 Vite 时,常见差异包括 require.context()、process.env、资源路径和 CSS 解析。一次替换所有配置会把这些差异集中暴露,排查成本很高。 迁移 Vite 的工程精髓在于&#…

2026/8/12 19:46:15 阅读更多 →
vue基础(第三章 路由)

vue基础(第三章 路由)

目录 1:vue路由使用 1.1:路由的使用 1.2:app.vue超链接 1.3:子组件 1.4:路由出口就是app.vue 1.5:路由器配置 1.6:app使用路由 2:嵌套路由 3:父组件向子组件参数传递 3.1:query方式 3.2:params方式 3.3:Props传递参数 3.4:ts配置 4:编程式路由 1:vue路…

2026/8/12 19:46:15 阅读更多 →
Vue3 项目三处高风险入口:HTML、动态组件与环境变量

Vue3 项目三处高风险入口:HTML、动态组件与环境变量

Vue3 项目三处高风险入口:HTML、动态组件与环境变量 Vue 默认会转义插值内容,但 v-html、动态组件、自定义指令和公开的环境变量仍需要单独审查。它们的共同点是:把外部输入转换为 DOM、组件选择或构建期常量。 flowchart TDA[Vue3 应用程序安…

2026/8/12 19:46:15 阅读更多 →
【公共云三十问 之十八】AI大爆发先进公共云产业红利何在?

【公共云三十问 之十八】AI大爆发先进公共云产业红利何在?

预计未来十年,AI有望贡献全球GDP增长的7%—15%,智能经济将成为全球经济增长的重要引擎。面向智能经济发展新阶段,中国公共云产业正处于政策规划引领、市场空间扩容、技术能力跃迁和全球化机遇释放的关键窗口期。为充分把握这一发展机遇&#…

2026/8/12 19:46:15 阅读更多 →
AI应用可扩展性设计:Plugin、Skill与MCP协议实战解析

AI应用可扩展性设计:Plugin、Skill与MCP协议实战解析

1. 项目概述:为什么可扩展性设计是AI应用的生命线最近和几个做AI应用落地的朋友聊天,大家不约而同地提到了同一个痛点:项目初期功能跑得飞快,一旦业务需求稍微复杂一点,或者想接入新的数据源、调用新的工具&#xff0c…

2026/8/12 19:46:15 阅读更多 →
2026一站式建站平台哪里好?真的有零基础建站平台吗?

2026一站式建站平台哪里好?真的有零基础建站平台吗?

2026一站式建站平台哪里好?真的有零基础建站平台吗?很多人会问:完全不懂代码、没有设计基础,真的能自己建网站吗?答案是肯定的。中国信通院2026年发布的《中国低代码平台发展白皮书》指出,国内低代码技术渗…

2026/8/12 19:45:15 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →