go-zero

写接口描述,一键生成整套微服务代码

go-zero 是一个面向云原生场景的 Go 微服务框架,配套 goctl 命令行工具,主打用代码生成替代重复劳动。它把 HTTP 服务、gRPC 服务、网关、RPC 调用、配置加载、日志、链路追踪、限流熔断、缓存与数据库访问等微服务常见能力做成开箱即用的组件,开发者只需编写 .api 或 .proto 描述文件,就能一键生成项目骨架、路由、客户端和 CRUD 代码。框架强调高并发下的稳定性,内置自适应熔断、负载均衡和自动缓存管理,减少手写样板与踩坑成本。对于从单体转向微服务、或需要快速搭建多服务体系的团队,go-zero 提供从开发、调试到部署的完整路径,并保持 Go 生态的轻量与高性能,适合中大型后端与云原生业务落地。

开源 free 开发框架
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 33365
维护状态 活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类开发框架
开发团队zeromicro
所属国家
定价模式free
价格说明开源免费,MIT许可证
访问状态
是否开源是
开源协议MIT
主要语言Go
技术栈/模型ai-native,ai-native-development,cloud-native,code-generation,framework,gateway,go,golang,grpc-gateway,microservice,microservice-framework,microservices,microservices-architecture,rest-api,restful,restful-api,rpc,rpc-framework,spec-driven-development,web-framework
GitHub 星标★ 33365
30天Star增速
HF 下载量
上线时间2020-08-07 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-10-07
浏览次数0

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 10 分钟 部署方式:命令行工具 7 步

环境要求

  • 已安装 Go 环境,并能使用 go get / go install(GOPATH/bin 需在 $PATH 中)
  • 需要安装 goctl 命令行工具,且保证其可执行并位于 $PATH 中
  • 若不想本地安装 goctl,可用 Docker 运行 kevinwan/goctl 镜像
  • Mac 用户可直接用 brew 安装 goctl

安装与启动步骤

  1. 1获取 go-zero 依赖

    在项目目录下执行,把 go-zero 框架依赖拉取到当前项目。这是 README 给出的 Installation 命令。

    go get -u github.com/zeromicro/go-zero
  2. 2安装 goctl 工具

    在 Quick Setup 与 Quick Start 中均给出该命令;安装完成后 goctl 会位于 GOPATH/bin,需确保该目录在 $PATH 中。

    go install github.com/zeromicro/go-zero/tools/goctl@latest
  3. 3验证 goctl 可用

    查看版本号确认命令能正常执行。若提示 command not found,说明 GOPATH/bin 未加入 $PATH。

    goctl --version
  4. 4生成 api 模板

    用 goctl 生成 greet.api 描述文件模板,随后可按 README 示例编写 Request/Response 与 service 路由。

    goctl api -o greet.api
  5. 5生成 Go 服务代码

    根据 greet.api 一键生成项目骨架,包含 etc 配置、handler 路由、logic 业务逻辑、types 结构体等目录。

    goctl api go -api greet.api -dir greet
  6. 6启动生成的服务

    进入 greet 目录整理依赖并运行主程序,指定 etc 下的配置文件;默认监听 8888 端口。

    cd greet
    go mod tidy
    go run greet.go -f etc/greet-api.yaml
  7. 7请求验证接口

    用 curl 访问生成的 /greet/from/:name 路由,返回 HTTP/1.1 200 OK 即表示服务正常。

    curl -i http://localhost:8888/greet/from/you

关键配置

配置项必填说明示例
Port否服务监听端口,位于生成的 etc/greet-api.yaml 中,默认 88888888
etc/greet-api.yaml是服务启动时通过 -f 指定的配置文件,承载可调整的配置项etc/greet-api.yaml

如何确认成功

运行后服务在 8888 端口监听;执行 curl -i http://localhost:8888/greet/from/you,返回 HTTP/1.1 200 OK 即启动成功。

常见问题

Q:goctl 提示 command not found 怎么办?

A:确认已执行 go install 安装 goctl,并把 Go 的 GOPATH/bin 加入 $PATH;README 特别强调 goctl 需可执行且在 $PATH 中。

Q:不想本地安装 goctl 有替代方式吗?

A:README 提供 Docker 方式:docker pull kevinwan/goctl,再 docker run --rm -it -v `pwd`:/app kevinwan/goctl --help 运行。

Q:接口默认端口是多少,能改吗?

A:默认端口 8888,可在生成的 etc/greet-api.yaml 配置文件中修改。

Q:只能生成 Go 代码吗?

A:不是,README 示例还给出 goctl api java -api greet.api -dir greet、goctl api dart -api greet.api -dir greet 等客户端代码生成命令。

注意事项

  • 所有命令均来自 README 的 Installation、Quick Setup 与 Quick Start 章节,未做额外扩展。
  • 配置文件中的具体配置项名称以 goctl 实际生成的 etc/greet-api.yaml 内容为准,README 仅说明端口默认为 8888 且可在该文件中配置。
  • 业务逻辑写在 internal/logic 包中,MySQL、Redis 等依赖通过 internal/svc/servicecontext.go 注入。
  • README 还提到可参考 ai-context 与 zero-skills 集成指南配置助手工作流与模式库(需访问对应仓库页面)。

核心亮点

  • goctl 根据 .api/.proto 一键生成服务骨架、路由、客户端与 CRUD 代码,显著减少样板代码
  • 内置自适应熔断、限流、负载均衡、自动缓存管理等微服务治理能力,开箱即用
  • 同时覆盖 HTTP 与 gRPC,并提供网关、配置、日志、链路追踪等完整工程化组件

不足之处

  • 框架约定较强,项目结构与生成代码风格绑定较深,深度定制或迁移成本偏高
  • 相比 Gin、Kratos 等,部分高级治理能力与生态插件仍依赖官方组件,社区第三方扩展相对有限

适用场景

  • 快速搭建多服务微服务后端并统一治理
  • 用 goctl 从接口描述生成 HTTP/gRPC 服务与客户端
  • 云原生业务中需要熔断限流与自动缓存的 API 服务

替代项目

Kratos、go-micro、Gin

项目介绍

go-zero 是开发框架领域的开源项目,由 zeromicro 开发,2020 年首次发布。

在全站 13,821 个收录项目中,它的 GitHub 星标数(33,365)位列前 2%,在开发框架分类的 836 个项目里位列前 1%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-10-04。开源免费,MIT许可证。

它主要面向的使用场景是:快速搭建多服务微服务后端并统一治理。同类可对比的替代方案包括 Kratos、go-micro、Gin。

上一篇:muse-gadget-sdk

下一篇:rigging

同类项目推荐

dsh-our-free-model 开源

装个插件就能免密钥白嫖前沿大模型,不限量

在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Fl···

★ 2138 2026-10-04
langchain 开源

组装 AI 应用的乐高积木,从想法到上线不换工具

The agent engineering platform.

★ 147498 2026-08-09
transformers 开源

全球最大的模型仓库全家桶,想用的模型一把抓

Transformers: the model-definition framework for state-of-the-art machine learning m···

★ 166998 2026-08-09