Kratos v2 helloworld layout

1

核心依赖关系

主要依赖 (go.mod:8-14):

- github.com/go-kratos/kratos/v2 v2.8.0 - Kratos微服务框架

- github.com/google/wire v0.6.0 - 依赖注入工具

- go.uber.org/automaxprocs - 自动设置GOMAXPROCS

- google.golang.org/grpc - gRPC协议支持

- google.golang.org/protobuf - Protocol Buffers支持

启动流程

1. 主入口 (cmd/server/main.go:50-87):

flag.Parse() → 配置加载 → Wire依赖注入 → 启动应用

2. 详细启动步骤:

- 解析命令行参数,默认配置路径为 ../../configs

- 创建结构化日志器,包含链路追踪信息

- 加载 YAML 配置文件到 conf.Bootstrap 结构

- 通过 Wire 进行依赖注入,构建完整应用

- 启动 HTTP(8000) 和 gRPC(9000) 服务器

- 等待停止信号

3. Wire 依赖注入 (cmd/server/wire.go:21-23):

server.ProviderSet + data.ProviderSet + biz.ProviderSet + service.ProviderSet → kratos.App

分层架构

四层架构模式:

1. API层 (api/) - Protocol Buffers 定义的接口

2. Service层 (internal/service/) - 业务逻辑入口

3. Biz层 (internal/biz/) - 核心业务逻辑

4. Data层 (internal/data/) - 数据访问层

关键组件:

- Server层 (internal/server/) - HTTP/gRPC 服务器配置

- 配置管理 - 支持 MySQL + Redis 数据源

- 链路追踪 - 集成 OpenTelemetry

- API网关 - 同时支持 HTTP 和 gRPC 协议

这个架构遵循了清洁架构原则,通过 Wire 实现了松耦合的依赖注入,适合构建可扩展的微服务应用。