机审系统项目深挖
事实与链路
- 记录任务来源、模型/规则依赖、日量、峰值到达率、平均/尾部处理时长、最大积压、超时率、重复回调率和本人职责。
- 教学链路:任务落库/Outbox → MQ → worker 领取 → 并行检测 → 汇总裁决 → 条件更新 → 通知;失败退避,超过预算进入人工处理。
- 异步隔离模型延迟并削峰,代价是处理中状态、重复/乱序和最终通知;强实时拦截可组合同步快速规则与异步深度检测。
关键决策
| 场景 | 核对点 |
|---|---|
| 重复提交 | 业务键可包含业务类型、对象 ID、业务版本、检测类型;数据库唯一约束兜底 |
| 多 worker 领取 | 原子抢占 PENDING 或租约过期任务,记录 owner、lease_until、attempt/version;结果提交校验本次执行令牌,过期 worker 不能覆盖新结果 |
| 下游重复执行 | 本地结果幂等不能阻止远程执行两次;计费或其他副作用调用传稳定幂等键 |
| 超时重试 | 超时是结果未知。单次超时服从总 deadline;指数退避加抖动,限制重试预算,只约定一层重试 |
| 不可用 | 高风险任务转人工/延迟/拒绝;低风险先发后审需业务授权。降级任务可追踪、可补审,恢复时限速回放 |
| 公平调度 | 按优先级拆队列并加权消费,例如教学权重 6:3:1;等待老化防饥饿,多租户限制配额与并发 |
| 版本灰度 | 固化模型/规则版本;影子流量比较新旧结果与人审一致率,再按业务键哈希分组切流;保留回滚开关 |
| 冲突裁决 | 组合检测的拒绝/通过/存疑规则必须版本化;人工与机审优先级明确,晚到结果仅审计 |
| 审计 | 保存任务、attempt、执行令牌、模型/规则版本、输入摘要、原始输出和最终裁决 |
容量恢复:确认瓶颈在 worker 还是下游;Kafka 同一消费组有效并行度受分区约束。下游无余量时加消费者只会加压。
text
追平时间 ≈ 积压量 / (稳定消费速率 − 到达速率),仅当分母 > 0
教学示例:1,000,000 / 500 ≈ 2,000 秒 ≈ 33.3 分钟练习
画任务状态机及租约接管时序;模拟超时后旧 worker 晚到、模型不可用、积压恢复和版本回滚。为错误放行、误杀、任务年龄超标和审计缺失分别给出监控与处置。使用故障案例模板补一项真实证据。