摘要:在高并发、强耦合的微服务系统中,同步 API 调用常导致级联故障、响应延迟和扩展困难。本文将带你深入理解事件驱动架构(EDA) 的核心思想,并通过 RabbitMQ + Spring Boot 实战演示如何将传统 REST 调用改造为异步事件流,实现服务解耦、削峰填谷与最终一致性。

使用api方式存在的问题
-
服务强耦合:OrderService 必须知道所有下游服务的地址和接口。
-
级联失败:任一服务超时或宕机,整个下单失败。
-
性能瓶颈:用户需等待所有服务执行完毕(可能 >1s)。
-
扩展困难:新增"审计日志"需修改 OrderService 代码。
使用mq作为数据通道

优势:
- 松耦合:非核心业务直接通过发消息,那边监听到自动消费就好。
2.弹性伸缩:各消费者按需扩容。
- 故障隔离:短信服务宕机不影响下单主流程。
4.可扩展性:新增业务只需订阅事件。
引入问题:
- 要保证mq的高可用