用途:该技能面向使用 Go 构建微服务的开发场景,围绕云原生常见模式提供实现参考,涵盖 gRPC、REST、服务发现、熔断、可观测性、健康检查与优雅关闭。
主要能力:
- gRPC 服务:给出 proto 定义示例(含一元与流式 RPC),以及服务端实现、日志/恢复/校验等一元拦截器写法。
- REST API:基于 chi 路由与中间件(RequestID、RealIP、Logger、Recoverer、Timeout、CORS)组织 /api/v1 路由与错误处理。
- 服务发现:使用 Consul 客户端注册与注销服务,并配置 gRPC 健康检查。
- 熔断:基于 gobreaker 设置失败阈值、间隔、超时与状态变更回调,并封装 Execute 调用外部依赖。
- 健康检查:使用 gRPC health 服务,后台定时检查数据库与 Redis 并设置服务状态。
- 优雅关闭:同时启动 HTTP 与 gRPC 服务,监听 SIGINT/SIGTERM 后在超时上下文内关闭。
- 配置管理:用 envconfig 从环境变量加载端口、数据库、Redis、Consul、日志与追踪等配置。
- 可观测性:slog 结构化日志、Prometheus 指标(请求计数、耗时直方图、活跃连接)与 OpenTelemetry 分布式追踪初始化。
使用方式:资料以代码示例形式呈现,需结合 Go 项目与相应依赖(如 google.golang.org/grpc、go-chi、hashicorp/consul/api、sony/gobreaker、prometheus/client_golang、OpenTelemetry SDK 等)参考实现。资料未提供安装命令或调用步骤。
适用场景:需要搭建或规范化 Go 微服务骨架、补充服务治理与可观测性能力的工程场景。
限制:资料为模式示例,未说明具体版本兼容性、部署方式、性能数据或收费信息;部分示例代码存在不完整或变量未定义的情况,实际使用需自行补全与验证。