go-zero-looklook:一套可直接落地的 go-zero 微服务实践项目
go-zero-looklook:一套可直接落地的 go-zero 微服务实践项目
go-zero-looklook 在 GitHub 上已经拿到 5,165 Star 了。
这是一个基于 go-zero 框架搭建的微服务示例。作者把生产环境落地的技术栈开源出来,覆盖了 API、RPC、消息队列、延迟队列、监控、链路追踪和 DevOps 流程。
1、这项目是干嘛的
go-zero-looklook 就是一个可以直接跑起来的 go-zero 微服务工程。
它把 API 网关、RPC 服务、消息队列、定时任务、日志收集、监控告警、链路追踪、CI/CD 串在了一起。业务代码写在 app 目录里,通用组件放在 common 里,所有中间件配置和部署脚本放在 deploy 里,data 目录放本地依赖数据。

2、为什么要看它
很多开发者看完 go-zero 文档后,缺的是一个完整工程该怎么组织的参照。单体 Demo 跑通了,一到微服务就不知道怎么切分服务、怎么放公共组件、怎么做日志监控、怎么上线。
这个项目把这些问题都摆在了目录里。API 做聚合层,复杂业务下沉到 RPC,简单逻辑直接写在 API 里。网关用 nginx,链路追踪用 Jaeger,日志用 filebeat 收集到 Kafka,再用 go-stash 同步到 Elasticsearch。监控用 Prometheus + Grafana,消息队列和延迟队列用 asynq,分布式事务预留了 DTM。

3、技术栈有哪些
项目里用到的技术基本都是 go-zero 生态和云原生工具:
- 框架:go-zero
- 网关:nginx
- 消息队列:kafka、go-queue、asynq
- 日志:filebeat、go-stash、elasticsearch、kibana
- 监控:prometheus、grafana、jaeger
- 事务:dtm
- 部署:docker、docker-compose、k8s、jenkins、gitlab、harbor
- 存储:mysql、redis
开发环境推荐用 docker-compose,直接走直连模式,省掉 etcd、nacos 这类服务注册发现的麻烦。上线环境则用 k8s,配合 CI/CD 流程。
4、目录结构长什么样
- app:业务代码,包含 API、RPC 和 MQ
- common:通用组件、错误处理、中间件、工具
- data:本地中间件产生的数据,不进仓库
- deploy:filebeat、nginx、prometheus、go-stash 等配置
- doc:项目文档
- modd.conf:本地热加载配置
部署脚本也在 deploy 里,可以自动生成 API、RPC 代码,也能自动生成 MySQL model。
5、适合哪些人
- 刚学完 go-zero,想找一个工程参考的开发者
- 准备用 go-zero 做微服务,但不知道目录和中间件怎么安排的团队
- 需要一套包含日志、监控、CI/CD 的落地模板的人
它可以作为工程模板,fork 之后改成自己的业务。文档目录里有更详细的部署和开发说明,按需查阅即可。
人
它可以作为工程模板,fork 之后改成自己的业务。文档目录里有更详细的部署和开发说明,按需查阅即可。
更多推荐


所有评论(0)