软件架构考试之夜提供了证据,不是容量保证——NovaCommerce 第五篇
两场真实考试、一次缩容失误和一个规划模型。最后一篇把观察、外推、运维成本与尚欠测试分清楚。
0.34 秒的结果任务排在慢速 AI 工作之后。分通道有帮助,但持久答案、有界重试与工作节点恢复同样重要。
作者
Anichur Rahaman

第 4 部分,共 5 部分
从单服务器到考试日就绪学生交卷后等待成绩排名卡。重新计算只需约 0.34 秒,但 10 月 6 日记录中,一些卡片延迟了 10–115 分钟。短任务排在约 2,000 个 AI 任务后面,每个约十秒,只有两个工作进程处理同一队列。
NovaCommerce 是课程与考试平台的匿名名称。第四篇保留 2026 年 9–10 月既有观察,并区分当时已实施变更与建议的保护措施。这不是新事件审计,也不是 StoreConsole 性能基准。
会话、缓存与队列外置到托管 Valkey,使 Web 节点容易替换,也形成共享依赖。10 月 6 日负载测试记录了 2,854 次连接超时。案例描述新建 TLS 连接,并把主备每节点从 4 GB 扩为 8 GB。后续 25–500 requests/s 测试中应用错误为零,但 CPU 饱和时均衡器仍有 143 次错误。连接故障改变了,不代表完整路径没有失败。
仅凭超时不能证明内存耗尽或某个握手 CPU 成本。应检查连接频繁创建、限制、网络和服务指标。考试时 12.5% 内存占用只是观察值。noeviction 避免内存压力驱逐旧键,却可能拒绝新写入;它不提供队列持久性、无损故障切换,或缓存、会话、任务之间的资源隔离。
团队将 AI 叙述与排名工作分离,案例称排名卡随后约一分钟出现。仅给队列不同名称并不足够,还要在进程分配、数据库连接和共享 CPU 中保留紧急工作的容量。
旧队列算术为 2,000×10=20,000 工作秒,两个进程约需 10,000 秒,即 166.7 分钟,尚未计额外开销。这说明可能的等待,不是精确完成预测。后来的供应商限额是另一层限制:共享每分钟八次调用时,2,000 个单调用任务至少需 250 分钟,即 4 小时 10 分钟,且未计重试和新到任务。
| 故障类型 | 处理 | 完成证据 |
|---|---|---|
| 暂时限流 | 共享限额;Retry-After;有界抖动 | 核对原操作 |
| 额度/认证问题 | 暂停、告警、修正原因 | 核对截止时间后受控恢复 |
| 外部结果未知 | 重放前查询/核对 | 无重复副作用 |
| 重试到期 | 保留失败/待处理记录并审查 | 审计重放或明确最终状态 |
| 工作节点失效 | 恢复处理并核对账本 | 已接受工作逐项有结果 |
历史通道使用共享每分钟八次调用、1–15 分钟指数退避加抖动、最多 12 小时重试窗口,以及临时模板文字。案例还记录额度不足时约 3,800 个叙述任务延迟,充值后恢复处理。这是恢复观察,不能证明所有任务都完成或不会过期。
八次是案例配置,不是供应商保证的额度,还可能有 token 与并发限制。收到 Retry-After 时应遵守。暂时限流与临时故障在绝对截止时间内重试;永久认证错误、无效输入或额度耗尽应暂停/停止并告警负责人。明确显示待处理或模板状态。到期后保留可审查失败和受控重放入口,不应静默丢弃。
网络超时可能发生在供应商已完成工作之后。重复副作用前,要使用稳定操作标识、供应商支持的幂等或状态核对。内部额度只对确认未消费的预留退还;修改应用计数器不能退还供应商账单。应审计计费预留和完成记录。这些是设计检查,并非此次新验证的历史实现。

一个固定 4 vCPU/8 GB 节点运行队列、调度、WebSocket 与短信;短信网关只允许一个出站 IP。已有快照,保留 IP 恢复、备用工作节点及考试临时容量仍在计划中。该 IP 必须实际支持所需出站路径与供应商白名单,分配地址本身不能证明短信可用。
节点失效会停止后台完成处理。已接受答案应预先存在权威持久记录,不能仅因队列在 Valkey 就保证安全。需测试持久性、已确认工作核对及切换后重放。安全领取与幂等效果具备时,多工作进程很正常。一个调度器或分布式锁不能保证崩溃后业务效果恰好一次。适用时任务超时须短于预留可见期/retry_after,且它与退避间隔不同。
两个限流层曾把 IP 当作学生身份。10 月 7 日,一个仪表盘端点约 74% 调用得到 429;随后用账户和路由作为键处理该端点。不能因此移除所有滥用限制,应保留账户、访客/网络及供应商保护,只信任受控代理转发头。签名 IP 也不是授权。
后端日志由 Fluent Bit 发送到 OpenSearch;前端发送仍在计划中,约每天 440 MB 本地日志可能随节点删除丢失。需要有界缓冲、投递监控、受限访问及答案、token、私密数据脱敏。外送不代表瞬时无损投递。
考试摘要观察开始/提交、单节点请求与 5xx、CPU、队列健康和失败任务。案例称考试中降低池下限导致两分钟约 360 次请求失败。“考试期间不缩容”的手册是人工保护,不是强制锁。应关注最老任务年龄和待完成结果,不能只看 CPU 或零失败计数。第五篇将审视测试实际证明了什么。
审核日期:2026年11月6日。Anichur Rahaman,StoreConsole 创建者。保留既有案例观察;一手资料说明通用行为,并非本次重新验证私有系统。
作者简介
Anichur Rahaman
继续阅读