tag

消息中间件

共 153 篇文章。
全部文章JavaGo书稿TypeScript游戏开发独立开发者小游戏游戏设计Godot性能优化RustKafkaPython游戏引擎
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
books

《Java 消息中间件·可靠消息与消费治理》9.3 最终一致性的度量

最终一致不是一个形容词,而是一组可以画在面板上的数字。本篇给每条事件带上产生时间戳,在下游落库时计算端到端延迟,本机跑出基线 P50/P95/P99 与最长窗口,再注入 10% 的慢路径看尾延迟怎么变;最后写一个对账任务,故意漏发两条、重发一条,验证它能把条数、金额和重复同时报出来。

9 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》7.3 事件溯源入门

只存当前状态,你能回答「现在是什么」,回答不了「为什么变成这样」。事件溯源把状态变更本身作为唯一事实来源,状态由重放推导。本篇用纯 JDK 实现最小事件存储,追加 8 个库存事件后从 0 重放得到 stock=9、reserved=12,再用 version=4 的快照加 4 条增量重放,两条路径结果逐字段相等;并实测乐观并发与重复 eventId 两种拒绝。

7 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》7.2 CDC:增量快照与变更捕获

日志挖掘读数据库的变更日志,查询轮询读一张带水位列的表,两者在 op 语义、删除可见性和业务侵入上完全不同。本篇手写轮询版 CDC 实测 c/u/d 三种变更,用同一毫秒的两行证明单列时间水位会漏数据,再用快照前取水位与快照后取水位两种顺序,说明衔接为什么只有前者能得到一致状态;Debezium 仅做架构对照并标注未在本机执行。

10 分钟阅读
书稿 Java Kafka
books

《Java 消息中间件·可靠消息与消费治理》7.1 Outbox 模式

先写库再发消息,会在进程崩溃时留下「有业务行、无事件」的孤儿数据。本篇用同库同事务的 outbox 表消除这个窗口,给出轮询发布器的完整实现,并在本机用嵌入式数据库真实 kill -9:写入 5 笔后崩溃、发送 3 条未标记就崩溃,重启补发后业务行 5、outbox 行 5、Kafka 8 条记录 5 个事件 ID,逐条对上。

8 分钟阅读
书稿 Java Kafka