cache/ | 分布式缓存抽象 | 本地缓存 + Redis 二级缓存、缓存穿透/击穿/雪崩防护、自动过期与刷新 |
circuit/ | 熔断器 | 失败率/慢调用/错误数熔断策略、半开探测、自动恢复、gRPC 与 HTTP 统一接入 |
circuit/breaker.go | 熔断器核心接口 | Closed/Open/HalfOpen 状态机、滑动窗口统计 |
circuit/grpc.go | gRPC 熔断拦截器 | 客户端 UnaryInterceptor,接入 Breaker |
circuit/http.go | HTTP 熔断中间件 | Gin 中间件 + HTTP Client 包装器 |
concurrent/ | 并发工具包 | Goroutine 池管理、流水线处理 |
concurrent/pool.go | Goroutine Pool | 并发数控制、worker 复用、任务队列、优雅关闭 |
concurrent/pipeline.go | 批处理流水线 | 多阶段并发处理、批量聚合、流式传递 |
config/ | 配置管理 | 多格式加载(YAML/JSON/ENV)、热更新监听、分层覆盖 |
config/loader.go | 配置加载器 | 文件读取、环境变量注入、默认值合并 |
config/watch.go | 配置热更新 | 文件变更监听、回调通知、原子切换 |
constant/ | 全局常量定义 | 错误码、环境标识、元数据 Key |
constant/code.go | 错误码定义 | 业务错误码枚举、HTTP/gRPC 状态映射 |
constant/env.go | 环境常量 | dev/staging/prod 环境标识 |
constant/meta_key.go | 元数据 Key 常量 | HTTP Header / gRPC Metadata Key 统一定义 |
convert/ | 类型转换工具 | 基本类型互转、安全转换、零值兜底 |
ctxutil/ | 上下文工具 | 元数据存取、请求上下文传播 |
ctxutil/ctx_keys.go | Context Key 定义 | 自定义 Key 类型,避免 Key 冲突 |
ctxutil/get.go | 上下文取值 | 从 context 提取 UserID、RequestID、TraceID 等 |
ctxutil/set.go | 上下文设值 | 向 context 注入元数据,支持链式传播 |
eventbus/ | 消息总线 / MQ 抽象 | 发布订阅接口、Kafka/RocketMQ 适配、可靠投递、消费重试 |
fileutil/ | 文件工具 | 文件读写、路径处理、文件存在性检查、目录遍历 |
grpcx/ | gRPC 核心 SDK | 客户端、服务端、拦截器、服务发现、状态转换 |
grpcx/client/ | gRPC 客户端 | 连接池管理、拨号、重试策略 |
grpcx/client/conn_pool.go | 连接池 | 连接复用、健康检查、空闲回收 |
grpcx/client/dialer.go | 拨号器 | 超时控制、TLS 配置、Keepalive |
grpcx/client/retry_policy.go | 重试策略 | 指数退避、抖动、最大重试次数、可重试错误判定 |
grpcx/interceptor/ | gRPC 拦截器 | 日志、元数据、恢复、超时、链路 |
grpcx/interceptor/logging.go | 日志拦截器 | 请求/响应日志、耗时统计 |
grpcx/interceptor/metadata.go | 元数据拦截器 | 上下游元数据透传 |
grpcx/interceptor/recovery.go | 恢复拦截器 | panic 捕获,调用 recovery/ 核心 |
grpcx/interceptor/timeout.go | 超时拦截器 | 请求级超时控制 |
grpcx/interceptor/trace.go | 链路拦截器 | TraceID 注入与提取 |
grpcx/metadata/ | gRPC 元数据工具 | Carrier 适配、MD 复制 |
grpcx/metadata/carrier.go | Carrier 适配 | 实现 propagation.TextMapCarrier 接口 |
grpcx/metadata/copy.go | MD 复制 | 深拷贝 metadata.MD,避免并发修改 |
grpcx/resolver/ | 服务发现解析器 | etcd 地址解析 |
grpcx/resolver/etcd_resolver.go | etcd 解析器 | 监听 etcd 服务列表变更、实时更新连接目标 |
grpcx/server/ | gRPC 服务端 | Server 构建、拦截器注册、服务注册 |
grpcx/server/server_builder.go | Server 构建器 | 链式配置、拦截器组装、生命周期管理 |
grpcx/status/ | gRPC 状态转换 | 业务错误码 ↔ gRPC status 转换 |
grpcx/status/convert.go | 状态转换器 | code ↔ status 映射、details 填充 |
httppx/ | HTTP/Gin 网关 SDK | 中间件、响应、路由、绑定、客户端 IP |
httppx/binder.go | 请求绑定器 | Proto/JSON 请求参数绑定与校验 |
httppx/clientip.go | 客户端 IP 提取 | 解析 X-Forwarded-For、X-Real-IP |
httppx/router.go | 路由工具 | 路由分组、注册辅助、前缀管理 |
httppx/middleware/ | Gin 中间件集合 | 认证、限流、CORS、恢复、链路 |
httppx/middleware/auth.go | 认证中间件 | JWT/Token 校验、权限判断 |
httppx/middleware/cors.go | CORS 中间件 | 跨域头设置、预检请求处理 |
httppx/middleware/limiter.go | 限流中间件 | 薄封装调用 sentinel/ 限流核心 |
httppx/middleware/recover.go | 恢复中间件 | 薄封装调用 recovery/ 核心 |
httppx/middleware/trace.go | 链路中间件 | TraceID 注入、请求日志关联 |
httppx/response/ | 统一响应 | 响应体封装、错误映射 |
httppx/response/resp.go | 响应体 | 统一 JSON 结构、成功/失败封装 |
httppx/response/error_mapper.go | 错误映射 | 业务错误码 → HTTP 状态码 + 错误详情 |
idempotency/ | 请求幂等控制 | 幂等 Key 生成、Redis 去重、超时过期 |
job/ | 分布式定时任务 | Cron 调度、分布式锁防重复、任务状态管理 |
lock/ | 分布式锁 | 通用接口 + Redis/etcd 实现 |
lock/lock.go | 锁接口 | Lock/Unlock/TryLock 通用定义 |
lock/redis_lock.go | Redis 锁实现 | SET NX EX、自动续期、解锁校验 |
lock/etcd_lock.go | etcd 锁实现 | Lease + TXN、公平锁 |
logger/ | 结构化日志 | Zap 封装、日志分级、动态级别 |
logger/zap.go | Zap 核心封装 | 日志初始化、字段注入、采样配置 |
logger/log_helper.go | 日志辅助 | 上下文日志(关联 RequestID/TraceID) |
metric/ | 指标采集 | Prometheus 指标定义与暴露 |
metric/prom.go | Prometheus 实现 | Counter/Histogram/Gauge 注册、/metrics 端点 |
mysql/ | MySQL 数据层 | 连接池、事务管理 |
mysql/client.go | MySQL 客户端 | 连接池配置、慢查询日志、健康检查 |
mysql/transaction.go | 事务管理 | Begin/Commit/Rollback、嵌套事务、超时控制 |
orm/ | ORM 封装 | 业务 CRUD、事务传播 |
orm/gorm.go | GORM 封装 | 分页查询、软删除、钩子、批量操作 |
orm/tx_propagate.go | 事务传播 | 跨 Repository 事务共享、传播行为 |
recovery/ | Panic 恢复核心 | 统一恢复逻辑、回调处理 |
recovery/panic.go | 恢复核心 | panic 捕获、堆栈记录、错误转换 |
recovery/handler.go | 恢复回调 | 日志记录、指标上报、告警通知 |
redis/ | Redis 数据层 | 客户端连接、Pipeline |
redis/client.go | Redis 客户端 | 连接池、哨兵/集群支持、命令封装 |
registry/ | 服务注册发现 | 注册接口 + etcd 实现 |
registry/registry.go | 注册接口 | Register/Deregister/Discover 通用定义 |
registry/etcd_registry.go | etcd 实现 | 服务注册、TTL 续约、实例发现 |
registry/model.go | 数据模型 | ServiceInstance 定义(名称、地址、端口、权重) |
security/ | 安全工具 | 加解密、签名、认证 |
security/aes.go | AES 加解密 | 对称加密、CBC/GCM 模式 |
security/jwt.go | JWT 工具 | Token 生成、解析、过期校验 |
security/md5.go | MD5 工具 | 哈希计算、盐值混淆 |
sentinel/ | 限流降级 | 多种限流算法 + 统一接入点 |
sentinel/token_bucket.go | 令牌桶 | QPS 限流、突发流量允许、分布式模式 |
sentinel/leaky_bucket.go | 漏桶 | 平滑限流、下游保护 |
sentinel/hotspot.go | 热点参数限流 | 用户/IP/商品维度细粒度控制 |
sentinel/middleware.go | 统一接入点 | HTTP/gRPC 限流降级中间件 |
shutdown/ | 优雅停机 | 信号监听 + 平滑关闭 |
shutdown/shutdown.go | 停机核心 | 停止接收新请求、等待存量请求、资源释放 |
shutdown/signal.go | 信号监听 | SIGTERM/SIGINT 捕获、触发停机流程 |
strs/ | 字符串工具 | 截取、拼接、驼峰转换、随机生成 |
times/ | 时间工具 | 格式化、时区转换、时间差计算、定时器 |
tracer/ | 链路追踪 | OpenTelemetry 集成 |
tracer/provider.go | Tracer Provider | 初始化 Tracer、采样率配置 |
tracer/otel.go | OTel 封装 | Span 创建、属性注入、上下文传播 |
tracer/propagator.go | 传播器 | W3C TraceContext / B3 传播协议 |
validate/ | 参数校验 | 字段校验、结构体验证、自定义规则 |
internal/testutil/ | 测试工具(项目级) | Mock 工具、TestContainer、测试 fixtures |