go-layout 是 Firefly 微服务框架的 Go 版本标准项目模板。它提供了一套标准化的目录结构和基础设施配置,旨在帮助开发者快速构建规范的微服务应用。
本模板基于 go-micro(Firefly 微服务框架的 Go 版本核心库)构建。
默认启动链路为:读取 conf/bootstrap.json 和 conf/consul.json,通过 Consul Store 加载运行期配置,再以 ManagedServer 托管业务 gRPC、management 端口和 sidecar 生命周期。config 数据面本身支持 watch/热更新,但 go-layout 默认模板当前只接入启动期加载,如需运行时热更新需要业务服务显式补充 Watcher 装配与组件重载策略。
-
Clone 项目
git clone https://github.com/fireflycore/go-layout.git my-project cd my-project -
重命名模块
使用提供的脚本将模块名(默认
go-layout)替换为你自己的模块名(例如github.com/myuser/my-project)。Windows:
.\rename_project.bat github.com/myuser/my-project
Linux / macOS:
chmod +x rename_project.sh ./rename_project.sh github.com/myuser/my-project
-
整理依赖
go mod tidy
-
准备配置
- 修改
conf/bootstrap.json,填写服务身份、端口、sidecar 与 telemetry 基础信息。 - 修改
conf/consul.json,填写 Consul 地址、协议、数据中心与令牌。
- 修改
make generate: 执行buf generate并生成 DTOmake init: 执行生成链路、wire ./cmd/server和go mod tidymake run: 直接执行go run ./cmd/servermake build: 先执行make init,再注入构建信息并编译服务