微服务框架开发标准

2023-04-14T03:03:52+08:00 | 5分钟阅读 | 更新于 2023-04-14T03:03:52+08:00

@
目录用途说明需要完成的功能
cache/分布式缓存抽象本地缓存 + Redis 二级缓存、缓存穿透/击穿/雪崩防护、自动过期与刷新
circuit/熔断器失败率/慢调用/错误数熔断策略、半开探测、自动恢复、gRPC 与 HTTP 统一接入
circuit/breaker.go熔断器核心接口Closed/Open/HalfOpen 状态机、滑动窗口统计
circuit/grpc.gogRPC 熔断拦截器客户端 UnaryInterceptor,接入 Breaker
circuit/http.goHTTP 熔断中间件Gin 中间件 + HTTP Client 包装器
concurrent/并发工具包Goroutine 池管理、流水线处理
concurrent/pool.goGoroutine 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.goContext 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.goCarrier 适配实现 propagation.TextMapCarrier 接口
grpcx/metadata/copy.goMD 复制深拷贝 metadata.MD,避免并发修改
grpcx/resolver/服务发现解析器etcd 地址解析
grpcx/resolver/etcd_resolver.goetcd 解析器监听 etcd 服务列表变更、实时更新连接目标
grpcx/server/gRPC 服务端Server 构建、拦截器注册、服务注册
grpcx/server/server_builder.goServer 构建器链式配置、拦截器组装、生命周期管理
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.goCORS 中间件跨域头设置、预检请求处理
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.goRedis 锁实现SET NX EX、自动续期、解锁校验
lock/etcd_lock.goetcd 锁实现Lease + TXN、公平锁
logger/结构化日志Zap 封装、日志分级、动态级别
logger/zap.goZap 核心封装日志初始化、字段注入、采样配置
logger/log_helper.go日志辅助上下文日志(关联 RequestID/TraceID)
metric/指标采集Prometheus 指标定义与暴露
metric/prom.goPrometheus 实现Counter/Histogram/Gauge 注册、/metrics 端点
mysql/MySQL 数据层连接池、事务管理
mysql/client.goMySQL 客户端连接池配置、慢查询日志、健康检查
mysql/transaction.go事务管理Begin/Commit/Rollback、嵌套事务、超时控制
orm/ORM 封装业务 CRUD、事务传播
orm/gorm.goGORM 封装分页查询、软删除、钩子、批量操作
orm/tx_propagate.go事务传播跨 Repository 事务共享、传播行为
recovery/Panic 恢复核心统一恢复逻辑、回调处理
recovery/panic.go恢复核心panic 捕获、堆栈记录、错误转换
recovery/handler.go恢复回调日志记录、指标上报、告警通知
redis/Redis 数据层客户端连接、Pipeline
redis/client.goRedis 客户端连接池、哨兵/集群支持、命令封装
registry/服务注册发现注册接口 + etcd 实现
registry/registry.go注册接口Register/Deregister/Discover 通用定义
registry/etcd_registry.goetcd 实现服务注册、TTL 续约、实例发现
registry/model.go数据模型ServiceInstance 定义(名称、地址、端口、权重)
security/安全工具加解密、签名、认证
security/aes.goAES 加解密对称加密、CBC/GCM 模式
security/jwt.goJWT 工具Token 生成、解析、过期校验
security/md5.goMD5 工具哈希计算、盐值混淆
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.goTracer Provider初始化 Tracer、采样率配置
tracer/otel.goOTel 封装Span 创建、属性注入、上下文传播
tracer/propagator.go传播器W3C TraceContext / B3 传播协议
validate/参数校验字段校验、结构体验证、自定义规则
internal/testutil/测试工具(项目级)Mock 工具、TestContainer、测试 fixtures
pkg/
├── circuit/             # 熔断器
├── concurrent/          # 并发工具 (Pool + Pipeline)
├── config/              # 配置加载与热更新
├── constant/            # 全局常量
├── convert/             # 类型转换
├── ctxutil/             # 上下文工具
├── eventbus/            # 消息总线 / MQ
├── fileutil/            # 文件工具
├── grpcx/               # gRPC 核心 SDK
│   ├── client/          # 连接池、拨号、重试
│   ├── interceptor/     # 拦截器
│   ├── metadata/        # 元数据工具
│   ├── resolver/        # 服务发现
│   ├── server/          # 服务端构建
│   └── status/          # 状态转换
├── httppx/              # HTTP/Gin 网关
│   ├── middleware/      # 中间件
│   └── response/        # 统一响应
├── idempotency/         # 幂等控制
├── job/                 # 分布式定时任务
├── lock/                # 分布式锁
├── logger/              # 结构化日志
├── metric/              # 指标采集
├── mysql/               # MySQL 数据层
├── orm/                 # ORM 封装
├── recovery/            # Panic 恢复核心
├── redis/               # Redis 数据层
├── registry/            # 服务注册发现
├── security/            # 安全工具
├── sentinel/            # 限流降级
├── shutdown/            # 优雅停机
├── strs/                # 字符串工具
├── times/               # 时间工具
├── tracer/              # 链路追踪
└── validate/            # 参数校验
```text
About Me

没什么想介绍的,一个很大众的码农…

喜欢代码,车,马,真的是 🐎

讨厌别人让我给自己的代码写注释 最厌烦别人的程序没有写注释

目标

学AI,加油!加油!