[开源]缩短从需求到上线的距离,集成各种工程实践的Web和RPC框架

开源系统分类系统
2026-06-28 08:13 4 次浏览 • 0 次下载 0KB
[开源]缩短从需求到上线的距离,集成各种工程实践的Web和RPC框架

一、开源项目简介

go-zero(收录于 CNCF 云原生技术全景图)是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。

使用 go-zero 的好处:

  • 轻松获得支撑千万日活服务的稳定性
  • 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
  • 微服务治理中间件可无缝集成到其它现有框架使用
  • 极简的 API 描述,一键生成各端代码
  • 自动校验客户端请求参数合法性
  • 大量微服务治理和并发工具包

二、开源协议

使用MIT开源协议

三、界面展示

go-zero 是一个集成了各种工程实践的包含 web 和 rpc 框架,有如下主要特点:

  • 强大的工具支持,尽可能少的代码编写
  • 极简的接口
  • 完全兼容 net/http
  • 支持中间件,方便扩展
  • 高性能
  • 面向故障编程,弹性设计
  • 内建服务发现、负载均衡
  • 内建限流、熔断、降载,且自动触发,自动恢复
  • API 参数自动校验
  • 超时级联控制
  • 自动缓存控制
  • 链路跟踪、统计报警等
  • 高并发支撑,稳定保障了疫情期间每天的流量洪峰

如下图,我们从多个层面保障了整体服务的高可用:

五、技术选型

我们使用 go-zero 的基本架构图

Installation

在项目目录下通过如下命令安装:

GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/zeromicro/go-zero

Quick Start

完整示例请查看 READMD.md 文档。

环境准备

在正式进入实际开发之前,我们需要做一些准备工作,比如:Go环境的安装,grpc代码生成使用的工具安装, 必备工具Goctl的安装,Golang环境配置等,本节将包含以下小节:(详细请查阅 READMD.md 文档)

  • 开发流程
  • golang安装
  • go modudle配置
  • goctl安装
  • protoc & protoc-gen-go安装
  • 其他

开发流程

  • goctl环境准备
  • 数据库设计
  • 业务开发
  • 新建工程
  • 创建服务目录
  • 创建服务类型(api/rpc/rmq/job/script)
  • 编写api、proto文件
  • 代码生成
  • 生成数据库访问层代码model
  • 配置config,yaml变更
  • 资源依赖填充(ServiceContext)
  • 添加中间件
  • 业务代码填充
  • 错误处理


开发工具

  • Visual Studio Code
  • Goland(推荐)