Skip to content
步骤(同步顺序执行)耗时是否可并行是否可异步
1. 渠道鉴权 & 签约100~300 ms
2. 风控模型(规则 + 评分卡)200~600 ms✔(多模型)
3. 账户系统校验余额50 ms✔(多账户)
4. 资金渠道扣款(微信/支付宝/银行卡)300 ms~2 s✔(多通道)
5. 记账 & 账单状态更新30 ms
6. 短信 / 推送 / 积分50 ms
  1. 降低 RT:把 ②③④ 并行跑,接口 RT 从 2 s→300 ms

  2. 提高吞吐量:MQ 削峰,还款高峰 1 w/s→平滑 2 k/s

  3. 容错 & 可回滚:任何子任务失败,走「补偿队列」冲正,保证 T+0 账务最终一致

  4. 渠道多活:并行调用微信、支付宝、银联,先返回成功的渠道,其余自动取消,成功率 99.9%→99.99%

实现骨架(Spring Cloud)

java
// 1. 接口立即返回「受理成功」
@PostMapping("/repay")
public ApiResp<Long> repay(@RequestBody RepayDTO dto){
    long taskId = idWorker.nextId();
    repayProducer.send("repay.topic", taskId, dto); // 异步落库
    return ApiResp.accept(taskId);  
}

// 2. 并行编排(CompletableFuture + 线程池)
@Component
public class RepayTaskService {
    @Async("channelThreadPool") 
    public CompletableFuture<ChannelResult> channelPay(RepayDTO dto){ ... }
    
    @Async("riskThreadPool")
    public CompletableFuture<RiskResult> riskCheck(RepayDTO dto){ ... }

    public void consume(RepayTask task){
        CompletableFuture.allOf(
            channelPay(task), riskCheck(task)
        ).thenAccept(v -> {
            if (allSuccess(v)) updateBillPaid(task);
            else repayCompensateProducer.send(task); // 补偿
        });
    }
}