Repolode
zeromicro

zeromicro/go-zero

带有内置稳定性保障机制的 Go Web 与 RPC 微服务框架,配套 goctl 代码生成工具。

Star
33,398
Fork
4,333
未关闭 Issue
255
最近提交
前天

这是什么?

go-zero 是一个用 Go 编写的 Web 与 RPC 框架,面向需要在高并发下保持稳定的微服务系统。框架内置了链式超时控制、并发控制、限流、自适应熔断和自适应过载保护等常见工程能力,其中不少无需额外配置即可生效。

配套的命令行工具 goctl 可以根据简洁的 .api 描述文件或 .proto 文件生成 Go 服务端代码,包括 handler、logic、服务上下文和带类型的请求响应结构体。同一份 .api 文件还能生成 Java、Dart、TypeScript、JavaScript、Kotlin、iOS 和 Android 的客户端代码。

项目还提供面向 AI 编程助手的开发工作流指引,并包含一个 MCP 适配器,可让支持 Model Context Protocol 的工具调用 goctl 生成代码。框架核心与 net/http 完全兼容。

核心功能

  • 01内置熔断、限流、过载保护和超时控制
  • 02goctl 可根据 .api 或 .proto 规范生成 Go 服务代码
  • 03自动校验客户端请求参数
  • 04同一份 .api 文件可生成多种语言的客户端代码
  • 05与 net/http 完全兼容,内置中间件可集成到其他框架

适用场景

  • 构建需要内置稳定性保护的高流量 REST API
  • 在微服务架构中开发相互调用的多个 RPC 服务
  • 基于同一份 API 规范生成 Go 服务骨架及移动端、Web 端客户端 SDK

快速上手

  1. 1

    使用 Go 安装 goctl

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

    创建 API 文件 greet.api(由 goctl 生成模板)

    goctl api -o greet.api
  3. 3

    从 API 文件生成 Go 服务端代码

    goctl api go -api greet.api -dir greet
  4. 4

    运行生成的服务

    cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml

收录于专题

标签

常见问题

go-zero 是什么?
带有内置稳定性保障机制的 Go Web 与 RPC 微服务框架,配套 goctl 代码生成工具。 go-zero 是一个用 Go 编写的 Web 与 RPC 框架,面向需要在高并发下保持稳定的微服务系统。框架内置了链式超时控制、并发控制、限流、自适应熔断和自适应过载保护等常见工程能力,其中不少无需额外配置即可生效。
go-zero 可以免费使用吗?用的什么许可证?
go-zero 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
go-zero 还在维护吗?
活跃维护中。go-zero 最近一次提交是在 2026年10月21日。
go-zero 适合用来做什么?
构建需要内置稳定性保护的高流量 REST API 在微服务架构中开发相互调用的多个 RPC 服务 基于同一份 API 规范生成 Go 服务骨架及移动端、Web 端客户端 SDK
go-zero 怎么安装和运行?
使用 Go 安装 goctl: go install github.com/zeromicro/go-zero/tools/goctl@latest 创建 API 文件 greet.api(由 goctl 生成模板): goctl api -o greet.api 从 API 文件生成 Go 服务端代码: goctl api go -api greet.api -dir greet 运行生成的服务: cd greet && go mod tidy && go run greet.go -f etc/greet-api.yaml
在哪里获取 go-zero?
源代码和安装说明在 GitHub 上:https://github.com/zeromicro/go-zero

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目