输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

消息与事件驱动

现代 Java Backend Engineering 学习路线:消息与事件驱动

0 子目录5 文档
消息与事件驱动:消息模型、交付与顺序、幂等消费、积压与死信、Kafka 实践、队列产品对照

CHAPTER OVERVIEW · 章节概览

先理解消息交付、顺序和重复,再比较产品;可靠消费与积压治理比只记配置更重要。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 消息模型"] N1["02 交付与顺序"] N2["03 幂等消费"] N3["04 积压与死信"] N4["05 Kafka 实践"] N5["06 队列产品对照"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

5
消息与事件驱动:共同模型先于产品配置把通知放进消息队列,接口就不必等邮件真正发出再返回。但任务交出去以后,还要知道有没有送达、能否重复执行、失败后怎么处理。本阶段先讲这些共同问题,再比较不同消息系统。消息队列基础:交付、顺序、幂等、积压与死信下单接口把“发送通知”交给后台处理,可以缩短用户等待,但也增加了一个问题:后台处理到一半崩溃怎么办?本章围绕投递、确认和重复处理讲消息可靠性,先把一条消息的生命周期弄清楚。Apache Kafka:日志、分区、副本、消费组与事务Kafka 中,消费者处理过的消息不一定立即从存储中消失;消费位置由 offset 表示。理解日志和位置这两个概念,再看分区、消费组和重放,就能解释它与传统工作队列的许多差异。RabbitMQ 与 RocketMQ:路由、队列、可靠性和选择选择消息系统时,可以先拿自己的场景提问:怎样路由,是否要求顺序,延迟任务怎么做,失败后如何重试?下面按这些问题比较 RabbitMQ 与 RocketMQ,而不是用一句“谁性能更好”结束选型。高性能与消息队列推荐阅读看消息中间件教程时,先跟踪一条消息从发送到确认的过程,再学习产品特有功能。压测也应围绕这条路径观察积压和处理速度,而不是只记录一个看起来很高的吞吐数字。