docs: record CMPP main flow regression

This commit is contained in:
hectorzhao
2026-08-21 11:40:26 +08:00
parent 2b5256d4a1
commit 03f72c87de
3 changed files with 77 additions and 0 deletions
+10
View File
@@ -3851,3 +3851,13 @@ git diff --check
- 最终100条/秒30秒使用`1380028/1300028/1890028`2999/2999受理、零拒绝/节流/连接错误,P50/P95/P99=`30/63/96ms`;移动/联通/电信`998/996/1005`,六通道各承载479至517。中间审计完成扣费1391笔,较修复前同口径805笔显著改善,但仍有1651条`submit_queued`及命令Stream`128/1322`;最终消息2815 delivered、43 failed、141 submitted,冻结/释放各2999、charged 2988、refunded 32SmsBillingRecord charged 2956/refunded 32,双Stream和数据库最终0/0。首条入队到最后供应商提交167.991秒,完整提交约17.85条/秒,100档仍失败,故未执行200/300/500。
- 第四阶段全部隔离正价样本共12040条,金额单价均325;冻结/释放各12040笔、总额3913000charged 11992笔/3897400refunded 125笔/40625。SmsBillingRecord最终charged 11867/refunded 125;测试账户从初始1经审计充值20000000、扣费与退款后余额16143226,恒等式`1+20000000-3897400+40625=16143226`成立。
- 测试结束已恢复配置:同企业11个应用单价均0;三主通道priority10/非备用、三备priority20/备用,weight均1003条临时运营商规则已删除并重启Worker。真实充值、扣费、退款和操作日志保留作为审计事实;六连接在线,双Stream 0/0,数据库0等待锁/0 idle in transaction。预生产未发布、未压测、未写入;本地未push,受保护工作区文件未纳入提交或删除。
## 2026-08-21 第四阶段停止优化后的主流程回归
- 按用户决定停止继续性能优化,新增`docs/phase-4-send-worker-optimization-plan.md`只记录后续诊断、P0至P3实施顺序、正确性约束和验收停止线。本轮不再修改或部署性能代码,不再执行阶梯压测。
- 测试环境标记保持`90345fba...+workspace.p4progress.d82933c344ec`。回归前六个隔离供应商连接在线,API、Worker、Gateway、Nginx、PostgreSQL、Redis均active且健康,数据库无等待锁。仅将测试应用`920001`单价从0临时改为325金额单位,保留前后快照和操作日志。
- 客户CMPP最小真实样本生成2条:2/2 SubmitResp成功,P50/P95/P99=`18/20/20ms`。按本轮开始时间和专用号段`1380031`直接核对真实数据库,Inbox completed 2、SmsSubmitRecord accepted 2、SmsReceiptRecord delivered 2、消息delivered 2,客户侧状态回执下游投递delivered 2。
- 正价计费闭环通过:两条消息单价325、总金额650;冻结/释放/正式扣费各2笔且金额分别为`-650/+650/-650`SmsBillingRecord charged 2,无重复、无退款;测试账户余额从16143226精确降至16142576。
- 在客户CMPP连接保持在线期间,经测试机内部Gateway事件入口注入一条携带实际`messageId/channelId/phoneNumber`的上行事件。`SmsUplinkMessage`按messageId精确匹配原应用和下发记录,内容“主流程回归上行短信”;客户端捕获`registered=0`普通Deliver并返回ACK`CmppDownstreamDelivery`最终uplink delivered 1。该步骤验证Gateway事件入口至API入库、匹配和客户下行Deliver/ACK;供应商到Gateway的原始CMPP Deliver解包由随后Gateway全量`go test ./... -count=1``go vet ./...`覆盖,本轮未伪称为真实供应商上行报文注入。
- 客户连接上线时还收到历史pending回执补投,因此客户端汇总`receipts=283`不能作为本轮回执数量;本轮严格使用开始时间、专用号段、MessageId和数据库外键隔离,新增回执事实为2条、上行为1条。该现象是既有待投递恢复行为,不归因到本次新增短信。
- 回归结束已把`920001`单价恢复为0并保存after快照;双Stream pending/lag均0,数据库0等待锁/0 idle in transactionAPI/Worker/Gateway均active。真实消息、计费、回执、上行和操作日志保留审计,预生产未变更。