posts

《Java 消息中间件·可靠消息与消费治理》 · 全书目录与章节索引(50 篇)

《Java 消息中间件·可靠消息与消费治理》全 50 篇:把端到端可靠性拆成生产、broker、消费、下游四段,逐段给出判据、代码与演练记录。覆盖幂等与事务、消费组工程、积压处置、死信与重试、outbox 与 Saga、顺序与消息大小、配额与跨集群、故障演练与验收清单。

全书概览

项目内容
书稿《Java 消息中间件·可靠消息与消费治理》
篇数50 篇(15 章 45 节 + 序、前言、目录 + 附录 A/B)
领域责任边界、幂等与事务、消费治理、数据链路、顺序与大小、平台治理、演练与验收
贯穿项目libraryd-mq —— 借阅、归还、预约、库存调整四类事件的可靠性要求
阅读方式从目录篇 进入按顺序通读,或按问题跳读
主线版本JDK 25 LTS(Temurin 25.0.5+8)、Kafka 4.3.0(KRaft only)、kafka-clients 4.3.0
上级专题书稿专题

三卷分工

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

本卷不展开服务端机制与客户端源码,需要时写「卷一第 N 章」;不展开架构范式,需要时写「卷三第 N 章」。

全书目录

前置

篇文章核心内容
—序:可靠性是设计出来的,不是配置出来的三个误判、四段责任模型、四类问题的定义
—前言:实验环境与故障注入口径单节点与三节点底座、stop/kill/pause/改配置
—目录与学习路径三条路径、五部分、与卷一卷三衔接

第一部分:可靠性语义(第 1–3 章)

节文章核心内容
1.11.1 端到端可靠性的责任边界四段责任表、每段的失败模式
1.21.2 生产端:acks、重试与幂等acks=all 的三个前提、重试窗口、幂等边界
1.31.3 消费端:手动提交与位移管理提交时机、自动提交丢什么、提交失败重试
2.12.1 重复的四种来源生产重试、再平衡、位移回退、下游重放
2.22.2 幂等消费:唯一键、状态机与去重表三种实现的成本、TTL 与容量、幂等迁移
2.32.3 恰好一次的两种实现与成本事务与业务幂等的边界对照
3.13.1 事务生产者与 read_committed事务流程、两种隔离级别看到什么
3.23.2 事务超时、fencing 与 abort超时、僵尸写入、abort 后的数据形态
3.33.3 事务的性能与运维代价额外请求与延迟、状态主题、何时不该用

第二部分:消费治理(第 4–6 章)

节文章核心内容
4.14.1 消费组设计:按业务还是按分区一个组一个职责、能力一致、多组订阅代价
4.24.2 分配策略与消费者倾斜四种 assignor 的分配结果与倾斜观测
4.34.3 扩缩容与优雅停机再平衡触发、停机姿势、poll 超时踢出
5.15.1 lag 的三种口径与误读三种口径的数值差异与选型
5.25.2 积压处置:扩容、跳过与降级能否追上的判断、扩容天花板、跳过前提
5.35.3 消费速率控制与背压pause/resume、用户限速、下游慢时别硬拉
6.16.1 死信队列的设计死信内容、必要元信息、回灌
6.26.2 重试主题与退避多级重试、退避位置、重试放大
6.36.3 毒消息隔离与人工干预一条消息阻塞分区、隔离手段、回灌幂等

第三部分:数据链路(第 7–9 章)

节文章核心内容
7.17.1 Outbox 模式同库同事务、轮询发布、崩溃恢复
7.27.2 CDC:增量快照与变更捕获日志挖掘与轮询、快照衔接、op 语义
7.37.3 事件溯源入门事件为唯一事实、重放重建、与 outbox 的区别
8.18.1 领域事件建模过去时、包含与不包含、事件 ID 与因果 ID
8.28.2 schema 演进与兼容性四类变更的兼容性实测
8.38.3 Schema Registry 的取舍集中管理的成本、自管方案、检查位置
9.19.1 Saga:编排与协同两种形态、步骤与补偿、失败回滚
9.29.2 补偿事务的幂等补偿重复、补偿失败兜底、与重试的区别
9.39.3 最终一致性的度量一致性延迟测量、窗口告警、对账

第四部分:顺序、批量与性能(第 10–12 章)

节文章核心内容
10.110.1 顺序的粒度与代价三种顺序粒度、in-flight 与乱序
10.210.2 热点分区与 key 设计单调 key 倾斜、加盐、二次分区
10.310.3 重分区与历史数据key→分区映射变化、历史数据处理、迁移
11.111.1 消息大小与批量参数三个上限的联动、超限表现
11.211.2 压缩算法选择四种算法的压缩比与 CPU、负收益场景
11.311.3 大消息的 claim-check 模式指针与内容分离、取回失败、一致性
12.112.1 消费者多线程模型每线程一消费者与工作线程、顺序保持
12.212.2 异步提交的陷阱静默失败、提交与处理错位
12.312.3 消费端性能调优三组参数的联合调参

第五部分:治理与验收(第 13–15 章)

节文章核心内容
13.113.1 多租户与配额字节与请求配额、降速而非拒绝
13.213.2 SASL/ACL 与传输加密机制选择、ACL 粒度、加密代价
13.313.3 跨集群复制MirrorMaker2 模型、复制延迟、切换位移
14.114.1 故障注入:broker 宕机宕机观测、客户端重试、恢复追赶
14.214.2 故障注入:消费端崩溃kill -9 的重复范围、session 超时
14.314.3 恢复演练与 RTO/RPORTO/RPO 定义、演练脚本、时间线
15.115.1 可靠性验收清单三十条检查项与逐条判据
15.215.2 容量与成本核算三档可靠性方案的成本对照
15.315.3 libraryd-mq 卷二验收验收场景、判据、遗留风险

附录

篇文章核心内容
A附录 A 可靠性配置矩阵三端配置表,每项标「保什么、代价是什么」
B附录 B 幂等与事务模板去重表、状态机、outbox、事务生产者

怎么读

详细说明见目录与学习路径 。

故意没写的东西

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

《Java 消息中间件·可靠消息与消费治理》15.3 libraryd-mq 卷二验收

把卷二四十五章的实验汇总成十八个验收场景,每条给出可执行的判据、证据章节和结论;另外单独列出十项本机做不出来因而不能算通过的检查,说明各自的风险。文末附一份可以直接改造成脚本的检查骨架、0/1/2 打分口径,以及卷二遗留问题与卷三的分工安排,方便团队评审时直接对照使用。

11 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》15.2 容量与成本核算

可靠性每一项配置都有账单:副本数乘存储、acks 乘内部复制流量、保留期乘天数、跨集群乘出网。本篇不谈具体价格,只给可核算的量——一天 1000 万条 1 KiB 消息,三档方案各需要多少 GB·天、多少出网流量,以及故障时才支付的副本重建成本。每一档都标出它能防住哪种故障,以及哪一笔钱其实可以不花。

12 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》15.1 可靠性验收清单

三十条可靠性检查项,分生产端、消费端、broker 与主题、数据链路、运维演练五组。每一条都给可观测的判据、对应的章节、以及不达标时的修改动作——判据都是「做一件具体的事,看一次结果」,不是「已配置」。五组各自附一节最容易做错的地方,末附打分口径与按边际效率排序的修改顺序。

12 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》14.2 故障注入:消费端崩溃

kill -9 一个处理到一半的消费者,实测重复了 61 条:崩溃时处理到 offset 460,最后提交的是 400,重启从 400 继续。再用 SIGSTOP 冻结进程做对照,发现 10 秒后组里变成「no active members」,恢复后从 offset 0 重读。两次实验证明 session.timeout.ms 保护的是「进程卡住」,不是「进程死掉」。

8 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》13.3 跨集群复制

跨集群复制是异步的,异步就有延迟、重复和位移错位。本篇在本机用两个单节点集群加 MirrorMaker2 实测:820 条消息 1:1 复制、逐条端到端延迟尾部 70–113 ms、offset-syncs 记录 0→0 与 519→519,并原样贴出一个与 offset-syncs 对不上的 checkpoint 记录,说明切换前为什么必须自己校验位移映射。

10 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》13.1 多租户与配额

客户端配额让吵闹的邻居变慢,而不是被踢掉。本篇在本机单节点上把 producer_byte_rate 配成 1024 B/s,用同一个 Java 生产者跑配额前后两组对照:385 ms 变成 15943 ms,客户端 produce-throttle-time 平均值 782 ms,16 条消息全部 ack、没有一条被拒;再给出按 client-id、按 user、按前缀与物理隔离的多租户方案。

9 分钟阅读
书稿 Java Kafka