CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
集成模式入门/课时/消息传递模式
RawBlame
课时目录12 节

集成模式入门

  1. 01集成模式是什么
  2. 02同步 vs 异步
  3. 03消息传递模式
  4. 04事件驱动架构
  5. 05Saga 与分布式事务
  6. 06API 组合
  7. 07BFF 模式
  8. 08熔断与降级
  9. 09幂等与去重
  10. 10CQRS 入门
  11. 11反模式
  12. 12综合练习

消息传递模式

点对点、发布订阅;对照 kafka/rabbitmq 课。

35 分钟

消息传递模式

消息中间件不只是「发一条 JSON」——点对点、发布订阅、请求-回复 等模式决定谁能收到、收到几次、失败怎么办。本课建立 EIP 词汇,细节实现见 Kafka / RabbitMQ 两个 track。

学习目标

  • 区分 Point-to-Point 与 Publish-Subscribe
  • 理解 Message Channel、Router、Dead Letter 直觉
  • 对照 kafka-concepts 与 rmq-exchanges

点对点(Point-to-Point)

[Producer] ──► [Queue / Topic 单消费组] ──► 恰好一个 Consumer 处理
                     │
              Worker1 ◄─┘(竞争消费,一条消息只被一个 Worker  ack)
              Worker2

RabbitMQ:一个 Queue + 多 Consumer(rmq-publish)。
Kafka:同一 consumer group 内 分区独占消费(kafka-consumer)。

用途:任务队列、订单导出、削峰填谷。

发布订阅(Publish-Subscribe)

[Producer] ──► [Topic / Fanout Exchange]
                    ├──► [通知服务]   (Group A)
                    ├──► [统计服务]   (Group B)
                    └──► [搜索索引]   (Group C)

同一条 OrderCreated 事件,多个下游各自独立消费。Kafka 天然多 consumer group;RabbitMQ 用 fanout / topic exchange。

用途:领域事件广播、读模型投影(ip-event-driven)。

常见消息结构

字段作用
messageId去重、追踪
correlationId关联请求链
timestamp排序、延迟监控
payload业务体(JSON / Avro)

kafka-schema 讲 Schema 演进;rmq-reliability 讲 ack、重投与 DLQ。

Kafka vs RabbitMQ(本课视角)

维度RabbitMQKafka
模型Queue + Exchange分区日志
回溯消费即删(默认)
可重放
典型场景任务、RPC事件流、CDC

详见 rmq-vs-kafka。

练习

  • 画 OrderCreated 的 pub/sub 拓扑(至少 3 个订阅者)
  • 说明工作队列用 P2P 还是 Pub/Sub
  • 读 kafka-delivery 总结 at-least-once 含义

小结

P2P 分摊任务;Pub/Sub 广播事件。 下一课:事件驱动架构。

加载本节练习…
← 上一课同步 vs 异步下一课 →事件驱动架构