Web开发

首页 » 常识 » 预防 » Go每日一库之云原生gozero微服务
TUhjnbcbe - 2024/5/8 18:02:00
天津市白癜风医院 https://disease.39.net/bjzkbdfyy/210901/9391329.html

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框架设计思考

对于微服务框架的设计,我们期望保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,我们就有如下一些准则:

保持简单高可用高并发易扩展弹性设计,面向故障编程尽可能对业务开发友好,封装复杂度尽可能约束做一件事只有一种方式我们经历不到半年时间,彻底完成了从Java+MongoDB到Golang+MySQL为主的微服务体系迁移,并于18年8月底完全上线,稳定保障了晓黑板后续增长,确保了整个服务的高可用。

3.go-zero项目实现和特点

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

强大的工具支持,尽可能少的代码编写极简的接口完全兼容net/

1
查看完整版本: Go每日一库之云原生gozero微服务