黑五大促最高立省 60%
  • 年付套餐首年立省 60%
  • 终身授权立省 45%
剩余
立即领取优惠

结果计算很快,队列却很慢——NovaCommerce 第四篇

0.34 秒的结果任务排在慢速 AI 工作之后。分通道有帮助,但持久答案、有界重试与工作节点恢复同样重要。

作者

Anichur Rahaman

1 个月前5 分钟阅读237 次浏览
结果计算很快,队列却很慢——NovaCommerce 第四篇

学生交卷后等待成绩排名卡。重新计算只需约 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 时应遵守。暂时限流与临时故障在绝对截止时间内重试;永久认证错误、无效输入或额度耗尽应暂停/停止并告警负责人。明确显示待处理或模板状态。到期后保留可审查失败和受控重放入口,不应静默丢弃。

网络超时可能发生在供应商已完成工作之后。重复副作用前,要使用稳定操作标识、供应商支持的幂等或状态核对。内部额度只对确认未消费的预留退还;修改应用计数器不能退还供应商账单。应审计计费预留和完成记录。这些是设计检查,并非此次新验证的历史实现。

可靠性图:持久接受答案、排名与 AI 分道、共享限额、有界重试、状态核对及工作节点恢复。
紧急结果与可选叙述有不同服务需求。图中同时包含历史配置与建议验证项。

单工作节点不等于恰好一次

一个固定 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

继续阅读