posts

《Java 消息中间件·事件驱动架构》 · 全书目录与章节索引

《Java 消息中间件》卷三:把业务需求翻译成事件契约、读模型、一致性方案与治理规则。覆盖事件与命令的分界、CQRS 与投影、Saga 与补偿、Kafka Streams 的流表模型、可观测与迁移路径,最后用 libraryd 全链路与场景对照收束。本页为章节索引,逐篇链接随正文落盘补全。

全书概览

项目内容
书稿《Java 消息中间件·事件驱动架构》
篇数50 篇(15 章 45 节 + 序、前言、目录 + 附录 A/B)
领域事件建模、CQRS、一致性与补偿、Kafka Streams、可观测与治理、架构验收
贯穿项目libraryd-mq —— 借阅、归还、预约、库存调整四类事件的完整链路
主线版本JDK 25 LTS(Temurin 25.0.5+8)、Kafka 4.3.0(KRaft only)、kafka-streams 4.3.0
上级专题书稿专题

三卷分工

卷书名关注点
卷一《Java 消息中间件·Kafka 内核与客户端》一条消息从 send 到落盘发生了什么
卷二《Java 消息中间件·可靠消息与消费治理》怎么做到不丢、不重、可恢复、可治理
卷三本卷怎么用事件设计系统

本卷只讲架构:机制归卷一,可靠性配置归卷二。凡是要展开 acks、ISR、位移细节的地方,一句话引用卷一,不重写。

五部分与十五章

部分章节回答的问题
第一部分 范式第 1–3 章什么时候该用事件?事件怎么建模?CQRS 的边界在哪?
第二部分 一致性与演进第 4–6 章跨服务怎么一致?顺序与并发怎么处理?契约怎么演进?
第三部分 流处理第 7–9 章Streams 的拓扑、流表模型、作业怎么运维?
第四部分 可观测性与治理第 10–12 章事件流怎么监控?平台怎么治理?怎么从现状迁移?
第五部分 案例与验收第 13–15 章完整链路长什么样?不同场景怎么选?上线判据是什么?

章节主题

章主题
1三种交互:事件、命令与查询
2事件建模:识别、边界与目录
3CQRS:读模型、投影与重建
4一致性:分布式事务、本地消息表与补偿
5顺序与并发
6契约演进
7Streams 基础
8流表模型
9流作业运维
10可观测
11平台治理
12方法与迁移
13libraryd 全链路
14场景对照
15上线与验收

阅读方式

三条路径:

与卷二的关系

卷二结束在「一条链路能不能上线」。卷三从这里接手,回答「几十条链路、几百个消费者、跨多个集群时,事件流本身怎么治理」。

卷二留下的四个缺口会在这里展开:跨集群语义、业务幂等的容量模型、契约治理的组织方式、长尾故障的观测。卷二验收单里的判据,在卷三会变成架构设计的前置条件。

写作状态

本卷正文正在写作中。逐篇目录与章节内链接会在正文落盘后补全,本页的章节结构以最终成书为准。

全部文章 game Indie Java golang Books 客户端开发 Minigame Saas rust Python
books

《Java 消息中间件·事件驱动架构》4.3 补偿与最终一致性

「最终一致」里的「最终」必须是一个可度量的分布,不是一句安慰。本文给出一致性窗口的度量代码:事件产生时打时间戳,下游写库提交后再打一个,按分位统计。本机两段负载实测显示窗口随积压线性增长,慢消费者下 p99 从 81ms 变成 4387ms。据此讨论补偿的触发条件、补偿失败的人工出口,以及一致性窗口该怎么承诺。

10 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·事件驱动架构》4.2 本地消息表与对账

卷二讲过 outbox 这个模式,这一节讲它落地要写哪几张表、中继怎么保证至少一次、对账为什么必须三方比对。用 H2 内存库真跑一遍:六个借阅、四类差异(有库无事件、有事件无库、写侧内容不一致、读侧内容不一致),输出差异报告,再演示读模型重建能修复哪一类、修不了哪一类。

8 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·事件驱动架构》4.1 分布式事务的三种落地

跨服务之后「事务」这个词只剩下一半含义。本文把 2PC、TCC、最终一致三种落地拆开:各自要求什么前提、把不确定性放在哪里、失败时留下什么残局,并用一张四维对照表(一致性强度、可用性、实现成本、失败模式)说明为什么大多数业务最终选了第三种,以及哪两类场景不该选它。

13 分钟阅读
书稿 Java Kafka