NovaShield 风控系统架构

CloudMart 电商平台 · 订单风险智能检测 · 5 阶段 Pipeline

架构图 (Architecture Diagram) — 结构性图形。描述软件系统的整体结构,包括组件、连接及其依赖关系。

RabbitMQ Queue orderRiskCheck Manual Trigger JobID / Natural Lang Local Dir SkipEnrichment=true Subscriber ingest/rabbitmq AMQP TLS 手动确认消息 IdempotentStore Redis / Memory TriggerRouter trigger 4种触发 → ScanInput ParseMessage + Route Pipeline 10min global timeout STAGE 1 Fetch Order OrderClient · 30s polling · 5min STAGE 2 Enrich Data DataFetcher · tar.gz · 10min STAGE 3 Validate behavior/ 必需 · 可选 fraud_behavior/profile/timeline STAGE 4 — sequential 4a Preprocess fraud_log:log:event:device = 8:4:2:1 4b Rule Query GPT API · riskKB · 30min cache STAGE 5 Risk Score RiskScorer → Fallback GPT API · --format=json · 5min STAGE 6 Alert AlertClient · 3 retries OrderService GET /order/:id/detail CustomerDB 交易数据 CSV 导出 GPT API AI 推理引擎 --format=json --auto-approve Risk KB risk-rules-kb Fallback rule_engine.py AlertService POST /risk/alert SASL ScanInput REST HTTP wiki/index.md fallback RabbitMQ Message {"region", "queue", "jobId", "tenant", "version", "triggerType", "kind", "region", "userNotes"} triggerType: fail | ft_restart | ft_resubmit | ft_replace | manual kind: pytorch | mpijob | rayjob SASL: PLAIN (可选) RiskResult risk_category string 必填 风险大类 risk_subtype string 必填 风险子类 is_known_pattern bool 必填 true/false confidence int 必填 0-5 evidence string 必填 关键证据 root_cause string 选填 原因分析 remediation string 必填 处置建议 Pipeline Result Status: success | failed | timeout TraceID: {jobID}-{unixMilli} ScanStatus: 1=扫描中 2=扫描完成 3=扫描失败 Platform: web | mobile | api nova-shield cmd/nova-shield Legend Message Bus (RabbitMQ) Backend Service External API (OrderService) Storage / Rules Fallback Generic Fallback Flow Pipeline Boundary

订单入口

  • • RabbitMQ Queue: orderRiskCheck
  • • AMQP TLS 认证 (可选)
  • • 手动确认消息 (prefetchCount=1)
  • • 4种触发: RabbitMQ / OrderID / Query / CSV
  • • context.WithoutCancel 保证优雅关闭

Pipeline 6 阶段

  • • Fetch → Enrich → Validate → Extract → Rules → Score → Alert
  • • 全局 5min 超时, 各阶段独立 timeout
  • • Stage 4 顺序: 先预处理,再 Rules (使用预处理结果)
  • • Rules + Scoring 共享 GPT API
  • • 任意非 alert 阶段失败走 fail() 统一出口

去重 & AI 依赖

  • • IdempotencyKey: nova:risk:{orderId}:{version}
  • • Redis SET 优先, 降级 MemoryIdempotentStore
  • • CheckAndMark → MarkComplete 防重复消费
  • • GPT API: 风控评分 + 规则查询
  • • Fallback: rule_engine.py 降级分析