优雅关闭与可观测性

优雅关闭

`Host::run()` 监听 shutdown 信号(Ctrl+C / SIGTERM):

收到信号 → 停止接受新连接 → 等待进行中请求完成 → IHostedService::stop() 逆序 → 退出

可观测性

请求追踪

- `RequestIdMiddleware`:每个请求生成唯一 `X-Request-Id` - `RequestTracing`:结构化请求日志 - `TimingMiddleware`:`Server-Timing` 响应头

启用 tracing

tracing_subscriber::fmt::init();

日志最佳实践

tracing::info!(request_id = %id, path = %path, "Request started");
tracing::error!(error = %e, "Handler failed");

生产部署清单

- [ ] `AppMode::Production` - [ ] 强 JWT Secret - [ ] TLS 证书配置 - [ ] 健康检查端点配置 - [ ] 日志聚合(stdout → 日志服务) - [ ] 速率限制启用

小结

框架内置优雅关闭和基础可观测性,生产环境配合 tracing + 日志聚合即可。

下一章:[项目组织与职责划分](../12-project-structure/INDEX.md)