提示:AI 结果必须带引用;若证据不足会提示“未找到可靠证据”。

    下载 Markdown

    云数据库代理网关开发计划(生产级多租户 v5)

    计划版本:v5.0
    日期:2026-02-15
    适用仓库:/Users/Zhuanz/work-space/cloud-data-proxy

    1. 执行原则(本项目强约束)

    1. 每次只做一个任务(单任务闭环)。
    2. 每个任务完成后必须按顺序执行:
      • 更新开发状态跟踪器
      • 运行充分测试
      • 提交代码
    3. 未完成以上三步,不允许进入下一个任务。
    4. 所有任务必须有可验证证据(测试输出、commit hash、接口验证)。

    2. 目标范围

    2.1 必须达成

    1. 1 年内支撑 20 个应用接入,应用间强隔离。
    2. 支撑 10万~100万 QPS 分阶段扩展。
    3. 可用性达到 99.99%。
    4. 数据库“全功能”路线明确并落地(最终支持 MySQL 协议代理能力)。

    2.2 分阶段目标

    1. 阶段 A(短期):夯实多租户隔离与并发治理(当前代码库主战场)。
    2. 阶段 B(中期):控制面与数据面拆分、元数据高可用化。
    3. 阶段 C(长期):协议级数据面,冲击 100万 QPS 与全能力兼容。

    3. 里程碑与时间窗口(建议)

    里程碑 时间窗口 核心目标
    M0 2026-02-15 ~ 2026-02-16 技术架构冻结 + 计划/跟踪器生效
    M1 2026-02-16 ~ 2026-03-05 多租户隔离与资源治理增强
    M2 2026-03-06 ~ 2026-03-25 管理面完善 + 审计与可观测增强
    M3 2026-03-26 ~ 2026-04-20 高可用与高并发能力建设
    M4 2026-04-21 ~ 2026-06-30 协议级数据面 PoC 与压测收敛
    M5 2026-07-01 ~ 2026-08-15 分布式生产强化与真实环境扩容收敛

    4. 任务拆解(按执行顺序)

    M1:多租户隔离与资源治理(P0)

    ID 任务 优先级 交付物 验收标准
    T01 租户级并发隔离策略(max_inflight P0 存储字段 + 管理 API + 数据面中间件 + 测试 同一租户超并发被拒绝,其他租户不受影响
    T02 租户级 QPS 覆盖策略(读/写/DDL) P0 策略模型 + 限流器改造 + 测试 可按应用独立限流,不影响全局默认值
    T03 租户级超时与结果集上限策略 P0 策略模型 + 数据面执行约束 + 测试 可单独限制高风险租户
    T04 连接池租户配额(每租户 max_open/max_idle) P0 AppManager 池治理 + 监控指标 无单租户连接池挤占

    M2:管理面与可观测(P0/P1)

    ID 任务 优先级 交付物 验收标准
    T05 控制台策略管理页(并发/QPS/超时) P0 UI + API 联动 页面可完整配置并实时生效
    T06 审计异步化与批量落库 P0 队列化审计组件 + 回压策略 审计不阻塞主请求
    T07 租户 SLO 指标面板(P95/P99/错误率) P1 metrics + dashboard 模板 可按租户定位故障
    T08 统一错误模型和故障定位 ID P1 error code 规范 + 文档 故障排查耗时下降

    M3:高可用与高并发(P0)

    ID 任务 优先级 交付物 验收标准
    T09 元数据存储抽象与双存储支持(SQLite/MySQL) P0 repository 抽象 + 迁移脚本 多实例共享状态一致
    T10 数据面无状态化与热配置缓存 P0 缓存层 + 失效机制 扩容不丢状态
    T11 可靠发布链路(灰度/回滚/健康门禁) P0 发布脚本与 runbook 一键回滚可用
    T12 72 小时稳定性压测与缺陷修复 P0 压测报告 + 修复记录 无 P0/P1 未闭环问题

    M4:全功能与 100 万 QPS 路线(P0)

    ID 任务 优先级 交付物 验收标准
    T13 事务会话 API(HTTP 过渡) P0 begin/commit/rollback/session 可覆盖核心事务场景
    T14 MySQL 协议数据面 PoC P0 协议代理 PoC + 基准测试 驱动兼容性达到预期
    T15 协议数据面接入控制面策略 P0 统一租户策略下发 HTTP 与协议面规则一致
    T16 100万 QPS 压测与上线门槛评审 P0 容量报告 + Go/No-Go 决议 满足上线硬门槛

    M5:分布式生产强化(P0/P1)

    ID 任务 优先级 交付物 验收标准
    T17 分布式部署门禁与实例标识 P0 CLUSTER_MODE 门禁 + INSTANCE_ID 响应标识 + 测试 CLUSTER_MODE=trueMETA_DRIVER=sqlite 时启动失败并给出明确信息
    T18 粘性路由与多实例部署模板 P0 Nginx sticky 配置模板 + Runbook 更新 事务场景跨请求稳定命中同一实例
    T19 Redis 分布式限流与并发计数 P1 限流抽象 + Redis 实现 + 回退策略 多实例下租户 QPS/并发约束一致
    T20 真实分布式复压与评审 P0 多实例压测报告 + Go/No-Go 在目标配置下成功吞吐明显高于单实例并满足错误率门槛

    5. 测试与质量门禁

    1. 代码门禁:go test ./...go vet ./...、关键路径集成测试。
    2. 单任务验收必须包含:
      • 功能测试(新增/回归)
      • 异常路径测试(边界、错误码、回滚)
      • 文档同步(计划 + 跟踪器)
    3. 对并发相关任务,必须包含竞态与压力场景测试。

    6. 上线门槛(Go/No-Go)

    1. 多租户隔离专项用例全部通过。
    2. 关键 SLO(P99、错误率、可用性)达到基线。
    3. 回滚演练完成并有记录。
    4. 安全检查通过(凭据、会话、审计、脱敏)。

    7. 当前执行点

    M5/T20 已完成:真实分布式复压与评审已输出,当前进入“下一轮规划”阶段。

    8. 本轮优化路线(立即执行)

    目标:将当前“单实例可用”能力,推进到“可多实例上线”的最低可行形态,优先消除错误部署方式和跨实例可观测盲区。

    8.1 P0(本轮必须完成)

    1. T17 分布式部署门禁与实例标识
      • 配置:新增 CLUSTER_MODEINSTANCE_ID
      • 门禁:CLUSTER_MODE=true 时,强制 META_DRIVER=mysql
      • 可观测:所有 HTTP 响应返回 X-Instance-ID,便于排障定位。
      • 控制台:/admin/settings 返回 cluster_modeinstance_id
    2. T18 粘性路由与多实例部署模板
      • 提供 Nginx sticky/upstream 模板。
      • Runbook 增加“事务场景必须粘性路由”的上线检查项。
      • 部署脚本与模板文档增加多实例入口说明。

    8.2 P1(下一轮执行)

    1. T19 Redis 分布式限流与并发计数。
    2. T20 真实分布式复压与 Go/No-Go 评审。