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

    下载 Markdown

    云数据库代理网关分布式复压评审报告(2026-02-15)

    评审日期:2026-02-15
    任务:T20 真实分布式复压与评审
    目标服务器:101.126.85.14

    1. 测试拓扑

    1. 网关实例 A:127.0.0.1:18080INSTANCE_ID=gateway-a
    2. 网关实例 B:127.0.0.1:18081INSTANCE_ID=gateway-b
    3. Nginx 粘性入口:127.0.0.1:28080
    4. Redis(分布式限流计数):127.0.0.1:6379(压测期间临时启用)
    5. 压测入口:本地 ab 通过 SSH 隧道访问 38080/38081/38082

    2. 关键验证结论

    2.1 粘性路由生效

    同一 token 多次请求命中同一实例,不同 token 可分散:

    1. tokenA -> gateway-a(稳定)
    2. tokenC -> gateway-b
    3. 真实应用 token 也出现 gateway-a/gateway-b 分散

    证据文件:

    • ./data/cloud-db-access-gateway-dist-test-2026-02-15/sticky-check.txt

    2.2 Redis 分布式限流一致性生效

    实验:同一个 app token,同时打两台实例(18080 + 18081),应用限流设为 qps_query=50

    结果(10 秒):

    1. A 实例:总请求 4873,非 2xx 4578,成功 295
    2. B 实例:总请求 4848,非 2xx 4639,成功 209
    3. 聚合成功:504,折算成功 QPS 50.4

    结论:多实例聚合吞吐被统一限制在约 50 QPS,符合“分布式限流一致性”预期。

    3. 吞吐复压结果

    3.1 单实例 vs 粘性入口(单 token)

    场景 并发 RPS 非2xx P95(ms)
    single_a (18080) 100 1021.53 0 185
    single_b (18081) 100 1023.76 0 192
    dual_sticky (28080, 单 token) 100 938.18 0 188

    说明:单 token 经粘性入口会固定命中单实例,吞吐不会因为“双实例存在”自动翻倍。

    3.2 粘性入口(双 token 并发)

    子任务 并发 RPS 非2xx
    token-A(命中 gateway-a) 100 466.51 0
    token-B(命中 gateway-b) 100 469.36 0
    聚合 200 935.87 0

    说明:在“同一台 4C 服务器双实例”条件下,双 token 分散后总吞吐仍约 936 RPS,未显著高于单实例。主要瓶颈为同机 CPU/IO 共享而非路由层。

    4. 阻塞项(影响 Go)

    本次尝试切换到 CLUSTER_MODE=true + META_DRIVER=mysql 时,服务启动失败:

    • 错误:apply migration 001_init.sql: Error 1064 (42000)
    • 影响:当前无法在目标环境完成“官方多实例门禁模式”下的完整复压。

    该问题属于生产化阻塞项,必须先修复 MySQL 元数据迁移兼容性。

    5. Go/No-Go 结论

    结论:No-Go(当前不满足“可生产分布式上线”门槛)。

    原因:

    1. CLUSTER_MODE=true + META_DRIVER=mysql 启动阻塞(迁移错误)。
    2. 复压拓扑是“单机双实例”,总吞吐未体现横向扩容收益。
    3. 尚未完成“多机多可用区”真实长稳压测(72h)与故障注入验证。

    6. 下一步收敛方案

    1. 修复 MySQL 元数据迁移脚本执行兼容性(优先级 P0)。
    2. 在至少 2 台网关节点复压(同配置),重新评估吞吐线性扩展比。
    3. 保留 Redis 分布式限流,补充降级告警与熔断观测。
    4. 补做 72h 稳定性与故障注入(MySQL 抖动、节点重启、Redis 短暂不可用)。

    7. 原始数据

    目录:/Users/Zhuanz/work-space/hot-docs/content/docs/reference/data/cloud-db-access-gateway-dist-test-2026-02-15

    关键文件:

    1. ab-summary-full.csv
    2. sticky-check.txt
    3. topology-status.txt
    4. single_a-c*.log / single_b-c*.log / dual_sticky-c*.log
    5. dual_token_a_c100.log / dual_token_b_c100.log
    6. redis_limit_a.log / redis_limit_b.log