第 1 级 · 促销高峰激增
一场大型网上促销在第 5 分钟开始,并在 45 分钟内把流量增加一倍,达约 800 笔交易每秒。交换机运行 6 台服务器,按平常日约 70 % 繁忙度配置。商户会对每个技术故障立即重试。要让正常客户保持获批、响应快速,同时不买多余的容量。
- 促销开始后,正常客户平均批准率 ≥ 95 %
- 平均授权时间 ≤ 500 ms
- 服务器成本 ≤ 75 u
你在一台支付交换机的运营台工作,这台交换机位于商户和发卡行之间。每一分钟,交易以每秒约 400 笔的速度到达;每笔都会被评估欺诈分数,等待空闲的连接槽位,再转发给其发卡行取得响应。模型按教科书公式计算排队、超时、客户端重试、欺诈筛查的取舍,以及代批的风险敞口。金额以通用货币单位(u)计。仅为教育模拟——并非财务、法律或投资建议。
每台服务器有 32 个连接槽位。新增的服务器需 5 分钟启动;每台服务器无论是否在启动都要计费。
最多接纳 90 % 的容量,对超出部分立即回复“请稍后再试”,而不是让它们排队后超时。
商户如何重试技术故障(最多 3 次)。立即 = 在下一分钟重试;退避 = 随机指数退避,平均延迟 1、2 和 4 分钟。
分数达到或高于此值的交易会被拒绝。分数以真实交易的标准差为单位:值越低,拦截的欺诈越多,被拒绝的正常客户也越多。
分数比阈值低这么多的交易,会被要求额外的客户验证,而不是直接决定:85 % 的真实客户能完成,5 % 的欺诈者能通过。0 = 关闭。
连接槽位等待发卡行响应的时间。超时后,交换机会发出冲正,并使用代批,或以“发卡行不可用”拒绝。
当发卡行未能及时响应,交换机会代其批准至此金额。每一笔代批都是发卡行从未核实过的风险敞口。0 = 关闭。
| 批准率(正常运作的发卡行) | 99.9 % |
|---|---|
| 被欺诈规则拒绝的正常客户 | 1.3 ‰ |
| 送去加强验证的交易 | 0.0 % |
| 已拦截的欺诈 | 31 % |
| 新交易 | 400 tx/s |
| 提供的负载(新交易 + 重试) | 400 tx/s |
| 重试 | 0 tx/s |
| 已丢弃(回复“稍后再试”) | 0 tx/s |
| 队列中被丢弃 | 0.0 % |
| 发卡行超时 | 0.0 % |
| 代批 | 0 tx/s |
| 服务中的服务器 | 6 |
| 启动中的服务器 | 0 |
| 服务器成本率 | 36 u/h |
| 迄今服务器成本 | 0 u |
| 代批风险敞口 | 0.00 M u |
| 迄今被批准的欺诈 | 0.00 M u |
| 迄今损失的正常交易 | 0.0 k tx |
| 等待重试的交易 | 0 tx |
| B 组发卡行延迟(平均) | 250 ms |
一场大型网上促销在第 5 分钟开始,并在 45 分钟内把流量增加一倍,达约 800 笔交易每秒。交换机运行 6 台服务器,按平常日约 70 % 繁忙度配置。商户会对每个技术故障立即重试。要让正常客户保持获批、响应快速,同时不买多余的容量。
第 5 分钟,一批被盗的银行卡信息开始被使用:流量中的欺诈比例由 0.1 % 跳升至 1 %。拒绝阈值是按平常日设定的(3σ),加强验证则是关闭的。要降低欺诈率,同时不拒绝正常客户。
第 5 分钟,B 组发卡行(占全部流量的四分之一)的平均响应时间减慢至 12 秒。交换机最多等待响应 8 s,没有代批,并运行 6 台服务器。要让正常运作的发卡行的客户保持畅通,在安全范围内尽量服务 B 组,并控制代批风险敞口和成本。
模拟器使用的每一个关系式及其来源。标注为假设的常数是示意性校准值。
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。decline when e^(d′x − d′²/2) ≥ (1 − π)·c_FP / (π·c_FN) ⇒ t* = [ln((1 − π)c_FP/(π c_FN)) + d′²/2] / d′[8][7]scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]busy slots = λ·S (Little) ⇒ utilization = λ·S / (32 × servers)[3]P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]fraud rate = approved fraud amount / approved amount × 10,000 bp (reference scale: 13 bp)[10]32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch time假设:槽位数量、服务和发卡行时间、分数分离度、加强验证通过率、无用功比例、金额和价格,都是中型交换机的示意数值,并非任何真实网络的数字。随机性:带种子的 mulberry32 生成器;所用分布包括均匀分布、指数分布(逆 CDF)、正态分布(Box–Muller)和泊松分布(Knuth)。种子会显示出来,并且可以分享。
教育模型,不可用于实际运营决策。真实站点会根据自己的设备和数据校准每一个常数。