0. go-zero介绍 go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go-zero包含极简的API定义和生成工具goctl,可以根据定义的api文件一键生成Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript代码,并可直接运行。 使用go-zero的好处: 轻松获得支撑千万日活服务的稳定性 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码 微服务治理中间件可无缝集成到其它现有框架使用 极简的API描述,一键生成各端代码 自动校验客户端请求参数合法性 大量微服务治理和并发工具包 1. go-zero框架背景 18年初,晓黑板后端在经过频繁的宕机后,决定从 Java+MongoDB 的单体架构迁移到微服务架构,经过仔细思考和对比,我们决定: 基于Go语言 高效的性能 简洁的语法 广泛验证的工程效率 极致的部署体验 极低的服务端资源成本 自研微服务框架 个人有过很多微服务框架自研经验 需要有更快速的问题定位能力 更便捷的增加新特性 2. go-zero框架设计思考 对于微服务框架的设计,我们期望保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,我们就有如下一些准则: 保持简单 高可用 高并发 易扩展 弹性设计