异步化与削峰

把非关键路径从请求链路中剥离:请求只做校验与落库,耗时动作(通知、导出、结算)转异步;用队列水位与消费速率控制端到端时效。

剥离识别可异步动作,给用户即时确认加稍后完成
时效定义端到端完成时限并监控积压与最老消息
补偿异步失败要有重试与人工兜底入口
  • 识别对象:请求链路中的通知、导出与结算等耗时动作
  • 接口剥离:先落库并返回受理结果与任务标识
  • 可靠投递:用事务性发件箱保证事件不丢失
  • 消费治理:重试与幂等消费,失败转死信
  • 结果回传:提供查询接口或回调通道告知最终状态
  • 时效监控:跟踪积压量与积压时长,超限告警
资源隔离批量任务使用独立队列与并发配额,避免抢占核心链路容量
用户预期受理结果里说明处理中的状态与查询方式,减少重复提交
查询防护任务状态查询接口限流并校验归属,防止轮询压垮系统
积压预案积压超阈值时扩容消费者,或暂停非关键任务让路
异步化的代价是最终一致:涉及金额与库存的操作,先确认业务能接受延迟入账。

易错点

  • 把强一致要求误判为可异步,业务状态出错
  • 异步任务无时效监控,用户长时间等不到结果

数据来源与参考

  • 《Microservices Patterns》(Richardson)
  • Google SRE Book:Handling Overload
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌