异步通信(消息队列、事件流)适合以下场景:

  • 耗时或可延后处理:发邮件、生成报表、视频转码——主流程快速响应,重活后台慢慢做。
  • 削峰填谷:流量尖峰先落进队列,消费者按自身能力匀速处理,保护下游不被打垮。
  • 解耦生产者和消费者:下单后通知库存、积分、物流多个下游,新增下游不用改主流程;下游临时不可用也不阻塞上游。
  • 提高可用性:下游宕机时消息堆积而非请求失败,恢复后追平。
  • 事件驱动与最终一致性:跨系统传播状态变化(领域事件、CDC),接受短暂不一致换取整体弹性。

不适合的场景:调用方必须立刻拿到结果才能继续(如扣款后马上知道余额)、强一致性约束、交互式低延迟链路——异步引入的复杂度(消息丢失、重复消费需要幂等、顺序保证、堆积监控、死信处理)在这些场景得不偿失。

易错点:把异步当“性能银弹”——端到端时延反而变长;异步链路的事故更隐蔽,必须配套追踪与对账。