Skip to content

Day 22 - 消息队列与DDD

📖 今日目标

  1. 理解消息队列在DDD中的作用
  2. 掌握领域事件与消息队列的集成
  3. 学习异步处理模式

核心概念

消息队列与DDD

消息队列是DDD中实现跨限界上下文通信的重要手段,主要用于:

  • 发布领域事件
  • 解耦上下文
  • 实现最终一致性

关键要点

1. 事件发布

java
public class Order {
    public void place() {
        // 业务逻辑...
        DomainEventPublisher.publish(new OrderPlacedEvent(orderId, ...));
    }
}

// 消息队列消费者
@MessageListener
public class handleOrderPlaced(OrderPlacedEvent event) {
    // 处理事件
}

2. 消息模式

模式说明
Point-to-Point点对点队列
Pub/Sub发布订阅
Event Bus事件总线

3. 最终一致性

跨上下文操作时,使用消息队列实现最终一致性:

  1. 执行本地上下文操作
  2. 发布事件到消息队列
  3. 下游上下文订阅并处理

面试考点

问题:DDD中什么时候适合使用消息队列?

答案:

  1. 跨限界上下文通信:上下文间需要异步交互
  2. 解耦:发送方不需要知道接收方
  3. 高并发:削峰填谷
  4. 最终一致性:可以接受短暂不一致

不适合:需要强一致性的场景

实践思考

🎯 思考题

设计订单完成后触发库存扣减的异步流程。


📅 学习进度

Day主题状态
01-21战略设计 + 战术 + 架构
22消息队列与DDD
23聚合设计原则
.........
30复习与总结

本文为DDD 30天学习计划第22天内容

📚 导航

| ← Day 21 - 上一章 | Day 23 - 下一章 →

最后更新: