seo综合信息
SEO信息 百度来访IP:- | 移动端来访IP:- | 出站链接:2 | 站内链接:63 IP网速: IP地址:- 地址:- | 网速:748毫秒 ALEXA排名 世界排名:- | 预估IP:- | 预估PV:- 备案信息 - | 名称:- | 已创建:未知
收录 百度 360 搜狗 谷歌 查询 0 0 0 0
电脑关键词 手机关键词 页面友好 首页位置 索引 近期收录 0 0 电脑端优秀 - 0 0
服务器信息 协议类型 HTTP/1.1 200 OK 页面类型 text/html 服务器类型 Tengine 程序支持 连接标识 消息发送 2024年11月22日 8时07分09秒 GZIP检测 已启用GZIP压缩 源文件大小 312.75KB 压缩后大小 98.72KB 压缩率 68.44%
网站快照A p a c h e R o c k e t M Q 官 方 中 文 社 区 | 快 速 使 用 | 架 构 原 理 | 官 方 答 疑 A p a c h e R o c k e t M Q 中 文 社 区 首 页 社 区 博 客 教 程 版 本 部 署 答 疑 样 例 首 页 社 区 博 客 教 程 版 本 部 署 答 疑 样 例 G I T H U B R o c k e t M Q 一 站 式 学 习 : 最 全 最 新 资 讯 , 尽 在 中 文 社 区 2 0 8 8 0 1 1 5 5 1 基 础 学 习 资 料 R o c k e t M Q 原 理 和 架 构 R o c k e t M Q 应 用 场 景 R o c k e t M Q 快 速 上 手 体 验 最 佳 实 践 A p a c h e R o c k e t M Q A C L 2 . 0 全 新 升 级 基 于 R o c k e t M Q C o n n e c t 构 建 数 据 流 转 处 理 平 台 最 新 文 章 全 部 文 章 行 业 实 践 技 术 探 索 社 区 动 态 ) : n u l l } ) ; } ) } ) : n u l l } 2 0 2 4 年 1 2 月 2 0 日 A p a c h e R o c k e t M Q 荣 获 2 0 2 4 开 源 创 新 榜 单 “ 年 度 开 源 项 目 ” 近 日 , 以 “ 新 纪 天 工 、 开 物 焕 彩 — — 致 敬 开 源 的 力 量 ” 为 活 动 主 题 的 “ 重 大 科 技 成 就 发 布 会 ( 首 场 ) ” 在 国 家 科 技 传 播 中 心 成 功 举 办 , 并 隆 重 揭 晓 了 2 0 2 4 开 源 创 新 榜 单 , 旨 在 致 敬 中 国 开 源 力 量 , 传 播 推 广 开 源 科 技 成 就 , 营 造 中 国 开 源 创 新 生 态 。 2 0 2 4 年 开 源 创 新 榜 单 由 中 国 科 协 科 学 技 术 传 播 中 心 、 中 国 计 算 机 学 会 、 中 国 通 信 学 会 、 中 国 科 学 院 软 件 研 究 所 共 同 主 办 , 中 国 开 发 者 社 区 承 办 , 以 王 怀 民 院 士 为 首 组 建 评 审 委 员 会 , 进 行 研 讨 评 审 , 面 向 中 国 开 源 行 业 领 域 , 遴 选 具 有 创 新 性 、 贡 献 度 和 影 响 力 的 开 源 项 目 、 社 区 、 应 用 场 景 与 开 源 事 件 。 在 评 审 出 的 1 0 个 年 度 开 源 项 目 中 , A p a c h e R o c k e t M Q 成 功 入 选 。 A p a c h e R o c k e t M Q 社 区 近 况 A p a c h e R o c k e t M Q 创 新 论 文 连 续 被 软 件 工 程 顶 级 会 议 录 用 ( 1 ) 2 0 2 4 年 9 月 , 由 阿 里 云 消 息 队 列 团 队 发 表 的 关 于 R o c k e t M Q 锁 性 能 优 化 论 文 《 B e y o n d t h e B o t t l e n e c k : E n h a n c i n g H i g h C o n c u r r e n c y S y s t e m s w i t h L o c k T u n i n g 》 被 C C F A 类 软 件 工 程 顶 级 会 议 F M 2 0 2 4 录 用 。 高 并 发 系 统 常 常 面 临 性 能 瓶 颈 , 主 要 是 由 于 线 程 间 激 烈 竞 争 锁 导 致 的 等 待 和 上 下 文 切 换 。 作 为 一 家 云 计 算 公 司 , 我 们 非 常 重 视 性 能 的 最 大 化 。 为 此 , 我 们 对 轻 量 级 自 旋 锁 进 行 了 改 进 , 并 提 出 了 一 种 简 洁 的 参 数 微 调 策 略 , 能 够 在 最 低 风 险 条 件 下 突 破 系 统 性 能 瓶 颈 。 该 策 略 在 高 吞 吐 量 消 息 队 列 系 统 A p a c h e R o c k e t M Q 中 得 到 了 验 证 , 实 现 了 X 8 6 C P U 性 能 提 升 3 7 . 5 8 % 和 A R M C P U 性 能 提 升 3 2 . 8 2 % 。 此 外 , 我 们 还 确 认 了 这 种 方 法 在 不 同 代 码 版 本 和 I O 刷 新 策 略 下 的 一 致 有 效 性 , 显 示 出 其 在 实 际 应 用 中 的 广 泛 适 用 性 。 这 项 工 作 不 仅 为 解 决 高 并 发 系 统 的 性 能 问 题 提 供 了 实 用 工 具 , 还 突 显 了 形 式 化 技 术 在 工 程 问 题 解 决 中 的 实 际 价 值 。 ( 2 ) 2 0 2 3 年 9 月 , 由 阿 里 云 消 息 队 列 团 队 发 表 的 关 于 R o c k e t M Q 高 可 用 范 式 设 计 论 文 《 R o c k e t H A : A L o g b a s e d S t o r a g e H i g h A v a i l a b i l i t y P a r a d i g m f o r M e s s a g i n g a n d S t r e a m i n g S c e n a r i o s 》 被 软 件 工 程 C C F A 类 顶 级 会 议 A S E 2 0 2 3 录 用 。 该 论 文 详 细 探 讨 了 R o c k e t M Q 在 其 发 展 历 程 中 所 蕴 含 的 高 可 用 性 设 计 理 念 , 凝 聚 了 团 队 在 行 业 应 用 中 积 累 的 宝 贵 经 验 。 为 了 应 对 分 布 式 系 统 中 常 见 的 故 障 , 如 崩 溃 和 网 络 分 区 , R o c k e t H A 提 出 了 一 种 基 于 日 志 存 储 的 高 可 用 性 设 计 框 架 。 该 框 架 由 六 个 基 本 组 件 构 成 , 旨 在 实 现 系 统 在 面 对 各 种 故 障 时 的 自 动 集 群 恢 复 。 具 体 而 言 , R o c k e t H A 通 过 模 块 化 设 计 , 实 现 了 消 息 、 事 件 及 流 场 景 的 高 可 用 性 , 确 保 系 统 能 够 在 发 生 意 外 故 障 时 迅 速 且 有 效 地 恢 复 。 此 外 , 该 设 计 还 优 先 考 虑 了 高 吞 吐 量 与 数 据 丢 失 防 护 , 以 保 障 系 统 在 进 行 大 规 模 数 据 处 理 时 的 稳 定 性 和 可 靠 性 。 评 估 结 果 表 明 , R o c k e t M Q 在 多 种 负 载 和 故 障 场 景 下 都 表 现 出 卓 越 的 高 可 用 性 和 快 速 恢 复 能 力 。 本 文 提 出 的 R o c k e t H A 的 设 计 理 念 可 为 其 他 基 于 日 志 存 储 的 系 统 提 供 参 考 和 借 鉴 , 推 动 相 关 领 域 的 研 究 与 开 发 。 G S o C ( G o o g l e S u m m e r o f C o d e ) 2 0 2 4 在 谷 歌 主 办 的 G S o C 2 0 2 4 中 , A p a c h e R o c k e t M Q 开 源 社 区 共 提 报 通 过 两 个 选 题 : 1 . R o c k e t M Q D a s h b o a r d S u p p o r t s R o c k e t M Q 5 . 0 A r c h i t e c t u r e a n d E n h a n c e s U s a b i l i t y : 该 题 目 旨 在 强 化 R o c k e t M Q 的 开 源 控 制 台 能 力 。 2 . O p t i m i z i n g L o c k M e c h a n i s m s i n A p a c h e R o c k e t M Q : 该 题 目 旨 在 优 化 锁 行 为 , 优 化 R o c k e t M Q 的 性 能 以 及 资 源 占 用 。 两 个 题 目 均 成 功 结 项 , 第 一 个 题 目 为 A p a c h e R o c k e t M Q 发 布 了 r o c k e t m q d a s h b o a r d 2 . 0 . 0 , 自 此 R o c k e t M Q D a s h b o a r d 支 持 A p a c h e R o c k e t M Q 5 . 0 。 第 二 个 题 目 创 新 性 地 提 出 了 A B S 锁 , 为 轻 量 化 的 自 旋 锁 提 供 了 一 套 退 避 策 略 , 从 而 实 现 低 成 本 、 有 限 制 的 锁 自 旋 行 为 , 同 时 适 应 不 同 强 度 的 资 源 争 抢 情 况 A p a c h e R o c k e t M Q 社 区 5 . 3 . 0 、 5 . 3 . 1 版 本 发 布 A p a c h e R o c k e t M Q 社 区 近 期 发 布 了 5 . 3 . 0 和 5 . 3 . 1 两 个 版 本 , 两 个 版 本 主 要 修 复 现 有 的 b u g 并 提 升 系 统 的 整 体 稳 定 性 和 性 能 。 值 得 一 提 的 是 , A p a c h e R o c k e t M Q 5 . 3 . 0 引 入 了 A p a c h e R o c k e t M Q A C L 2 . 0 支 持 , 为 用 户 带 来 了 更 加 灵 活 和 安 全 的 访 问 控 制 机 制 。 这 些 改 进 和 新 增 功 能 将 显 著 提 升 A p a c h e R o c k e t M Q 在 生 产 环 境 中 的 稳 定 性 和 安 全 性 , 进 一 步 满 足 用 户 的 业 务 需 求 。 A p a c h e R o c k e t M Q 中 文 社 区 全 新 升 级 2 0 2 4 年 7 月 , A p a c h e R o c k e t M Q 中 文 社 区 ( h t t p s : / / r o c k e t m q . i o ) 全 新 升 级 , 致 力 于 为 每 一 位 热 衷 于 R o c k e t M Q 技 术 探 索 与 实 践 的 开 发 者 , 打 造 一 个 集 时 效 性 、 全 面 性 、 深 度 于 一 体 的 一 站 式 学 习 平 台 。 最 全 最 新 资 讯 : A p a c h e R o c k e t M Q 中 文 社 区 提 供 从 基 础 到 深 入 的 全 面 学 习 资 料 , 涵 盖 原 理 介 绍 、 架 构 解 读 、 源 码 分 析 等 基 础 知 识 , 高 级 性 能 使 用 、 技 术 前 沿 探 索 、 场 景 最 佳 实 践 等 博 客 文 章 , 用 户 反 馈 的 真 实 答 疑 样 例 等 , 并 及 时 更 新 版 本 发 布 、 架 构 演 进 和 功 能 迭 代 等 社 区 动 态 , 以 及 社 区 相 关 活 动 和 会 议 信 息 , 为 您 提 供 更 多 学 习 和 交 流 的 机 会 。 智 能 专 家 答 疑 : A p a c h e R o c k e t M Q 中 文 社 区 基 于 A p a c h e R o c k e t M Q 领 域 专 业 知 识 库 , 并 结 合 先 进 的 大 模 型 技 术 进 行 优 化 , 为 您 提 供 A I 问 答 助 手 , 作 为 您 的 智 能 学 习 伴 侣 。 通 过 自 然 语 言 问 答 , 让 您 的 疑 问 得 到 迅 速 解 答 , 使 您 的 学 习 之 旅 更 加 轻 松 有 趣 。 关 于 A p a c h e R o c k e t M Q R o c k e t M Q 致 力 于 构 建 低 延 迟 、 高 并 发 、 高 可 用 、 高 可 靠 的 分 布 式 “ 消 息 、 事 件 、 流 ” 统 一 处 理 平 台 , 覆 盖 云 边 端 ⼀ 体 化 数 据 处 理 场 景 , 帮 助 企 业 和 开 发 者 在 智 能 化 时 代 , 轻 松 构 建 事 件 驱 动 架 构 的 云 原 生 应 用 。 R o c k e t M Q 自 2 0 1 2 年 诞 生 于 阿 里 巴 巴 集 团 的 核 心 交 易 链 路 , 至 今 已 经 历 十 余 年 “ 双 十 一 ” 的 万 亿 级 数 据 洪 峰 验 证 。 2 0 1 5 年 , 阿 里 云 面 向 企 业 提 供 商 业 化 的 消 息 队 列 服 务 , 其 中 包 括 云 消 息 队 列 R o c k e t M Q 版 。 2 0 1 6 年 , 阿 里 巴 巴 向 A p a c h e 软 件 基 金 会 捐 赠 了 R o c k e t M Q 项 目 , R o c k e t M Q 进 入 A p a c h e 孵 化 器 。 2 0 1 7 年 , A p a c h e R o c k e t M Q 成 为 A p a c h e 顶 级 项 目 , 在 开 源 消 息 中 间 件 领 域 占 据 领 导 地 位 。 2 0 2 2 年 , A p a c h e R o c k e t M Q 5 . 0 正 式 发 布 , 全 面 拥 抱 云 原 生 架 构 、 超 融 合 架 构 , 进 一 步 拓 展 事 件 驱 动 、 物 联 网 等 场 景 。 ) : n u l l } 2 0 2 4 年 1 1 月 1 8 日 基 于 R o c k e t M Q 事 件 驱 动 架 构 的 A I 应 用 实 践 A I 应 用 在 商 业 化 服 务 的 阶 段 会 面 临 诸 多 挑 战 , 比 如 更 快 的 服 务 交 付 速 度 , 更 实 时 、 精 准 的 结 果 以 及 更 人 性 化 的 体 验 等 , 传 统 架 构 限 制 于 同 步 交 互 , 无 法 满 足 上 述 需 求 , 本 篇 文 章 给 大 家 分 享 一 下 如 何 基 于 事 件 驱 动 架 构 应 对 上 述 挑 战 。 盘 点 A I 应 用 场 景 在 深 入 探 讨 事 件 驱 动 架 构 跟 A I 结 合 前 , 我 们 先 梳 理 一 下 A I 应 用 的 现 状 。 从 应 用 架 构 层 面 , 大 致 可 以 把 A I 应 用 分 为 以 下 三 类 : 1 ) 基 于 基 础 模 型 的 扩 展 应 用 , 典 型 的 如 C h a t G p t ( 文 本 生 成 ) 、 S t a b l e D i f f u s i o n ( 图 像 生 成 ) 、 C o s y V o i c e ( 声 音 生 成 ) 等 , 这 类 应 用 通 常 会 以 模 型 能 力 为 核 心 , 提 供 相 对 原 子 化 的 服 务 。 2 ) 智 能 知 识 库 应 用 , 如 L a n g c h a i n c h a t c h a t , 这 类 应 用 是 以 L L M 为 核 心 , 基 于 R A G ( 增 强 检 索 技 术 ) 构 建 的 具 有 广 泛 的 业 务 场 景 的 应 用 。 3 ) 智 能 体 应 用 , 智 能 体 应 用 核 心 要 点 是 应 用 以 L L M 为 交 互 中 枢 , 能 够 通 过 工 具 的 调 用 联 通 外 部 世 界 , 复 杂 的 表 现 形 式 如 多 智 能 体 协 作 等 , 是 企 业 A I 应 用 落 地 最 具 想 象 空 间 的 一 类 应 用 。 浅 析 A I “ 原 生 ” 说 到 “ 原 生 ” 二 字 , 它 代 表 的 是 对 某 种 概 念 的 广 泛 认 知 , 比 如 提 移 动 原 生 应 用 立 马 可 以 联 想 到 手 机 端 的 A P P , 提 云 原 生 应 用 很 多 开 发 者 立 马 可 以 想 到 容 器 化 等 , 而 对 于 A I “ 原 生 ” , 除 了 C h a t G p t , M i d j o u r n e y 等 几 款 头 部 A I 应 用 , 我 们 似 乎 还 没 有 看 到 像 移 动 应 用 那 样 广 泛 的 “ 原 生 ” 应 用 被 定 义 出 来 , 当 然 今 天 也 没 有 办 法 给 出 明 确 的 结 论 , 只 是 通 过 一 些 事 实 , 帮 大 家 推 演 A I “ 原 生 ” 的 方 向 , 希 望 能 够 帮 助 慢 慢 凝 聚 在 内 心 中 那 个 对 “ A I 原 生 ” 的 影 像 。 A I 给 应 用 架 构 带 来 的 变 化 当 A I 能 力 加 入 后 , 我 们 的 应 用 架 构 发 生 了 较 大 的 变 化 。 R A G , A g e n t 等 编 程 范 式 被 引 入 , 传 统 的 工 作 流 也 因 为 有 了 A I 节 点 , 变 得 与 以 往 有 所 不 同 。 A I 应 用 架 构 R A G A I 应 用 架 构 A g e n t 加 入 A I 节 点 的 工 作 流 A I 应 用 的 变 化 趋 势 从 观 察 知 名 A I 厂 商 的 产 品 形 态 演 进 看 , A I 应 用 由 前 面 提 到 的 基 础 模 型 扩 展 、 智 能 知 识 库 、 智 能 体 三 类 叠 加 又 相 对 分 离 , 在 慢 慢 向 由 智 能 体 统 一 管 控 约 束 的 方 向 发 展 。 比 如 O p e n A I 的 C a n v a s , C l a u d e A r t i f a c t s , V e r c e l v 0 等 产 品 特 性 。 它 们 都 表 现 出 了 一 系 列 的 共 性 : 智 能 内 核 , 多 模 态 , L U I 交 互 。 从 另 外 一 个 角 度 理 解 , A I 原 生 的 应 用 只 有 突 破 之 前 的 用 户 体 验 才 有 可 能 让 用 户 买 单 。 分 散 的 基 础 模 型 能 力 , 多 模 态 能 力 都 只 能 在 某 些 场 景 下 有 体 验 提 升 , 某 些 方 面 甚 至 不 如 传 统 应 用 的 用 户 体 验 。 所 以 需 要 整 合 , 将 对 话 式 交 互 , 智 能 模 型 和 多 模 态 叠 加 从 而 构 建 出 超 越 传 统 应 用 的 使 用 体 验 。 使 用 事 件 驱 动 构 建 A I 原 生 这 里 并 不 是 单 纯 为 了 追 求 技 术 的 先 进 性 而 使 用 事 件 驱 动 架 构 , 是 因 为 实 践 中 顺 序 式 的 架 构 有 时 候 无 法 满 足 业 务 需 求 。 传 统 顺 序 式 的 架 构 在 构 建 A I 原 生 的 挑 战 顺 序 调 用 无 法 保 障 推 理 体 验 模 型 服 务 的 推 理 耗 时 远 高 于 传 统 意 义 的 网 络 服 务 调 用 , 比 如 在 文 生 图 这 个 场 景 下 使 用 S t a b l e D i f f u s i o n 服 务 , 即 使 经 过 算 法 优 化 后 最 快 也 是 秒 级 , 并 发 量 较 大 的 时 候 , 会 很 容 易 导 致 服 务 器 宕 机 。 此 外 如 声 音 的 合 成 , 数 字 人 的 合 成 等 耗 时 可 能 是 分 钟 级 的 , 此 时 顺 序 调 用 明 显 就 不 太 合 适 。 选 择 事 件 驱 动 的 架 构 可 以 快 速 响 应 用 户 , 推 理 服 务 按 需 执 行 , 这 样 既 能 够 保 障 用 户 体 验 , 同 时 也 降 低 系 统 宕 机 风 险 。 顺 序 调 用 无 法 支 持 实 时 数 据 构 建 的 需 求 在 智 能 问 答 系 统 中 , 结 果 的 好 坏 跟 数 据 有 很 大 的 关 系 。 问 答 召 回 数 据 的 实 时 性 和 准 确 性 很 大 程 度 影 响 着 智 能 问 答 系 统 的 用 户 体 验 , 从 系 统 架 构 层 面 , 问 答 和 数 据 的 更 新 是 分 开 的 。 靠 人 工 去 更 新 海 量 数 据 不 现 实 , 通 过 设 置 定 时 任 务 以 及 构 建 知 识 库 数 据 更 新 的 工 作 流 能 够 更 加 有 效 的 解 决 数 据 实 时 更 新 的 问 题 , 事 件 驱 动 架 构 在 这 个 场 景 下 优 势 非 常 明 显 。 双 向 互 动 场 景 无 法 实 现 在 问 答 服 务 场 景 下 , 拟 人 化 的 行 为 能 够 得 到 用 户 好 感 从 而 扩 展 商 机 , 传 统 的 问 答 式 应 用 架 构 相 对 机 械 死 板 , 而 使 用 消 息 队 列 作 为 信 息 传 输 可 以 有 效 主 动 触 达 用 户 , 通 过 合 理 的 意 图 判 断 , 主 动 向 用 户 问 好 , 是 有 效 的 留 存 手 段 。 事 件 驱 动 构 建 A I 原 生 的 实 践 接 下 来 分 享 一 下 基 于 事 件 驱 动 架 构 构 建 的 A I 应 用 的 一 些 实 践 。 S t a b l e D i f f u s i o n 异 步 推 理 前 面 提 到 了 关 于 文 生 图 模 型 S t a b l e D i f f u s i o n 在 服 务 客 户 中 遇 到 的 问 题 , 我 们 利 用 事 件 驱 动 架 构 , 使 用 函 数 计 算 和 轻 量 消 息 队 列 ( 原 M N S ) 构 建 了 S t a b l e D i f f u s i o n 的 异 步 推 理 架 构 , 用 户 请 求 到 来 时 经 过 函 数 计 算 网 关 到 达 A P I 代 理 函 数 , A P I 代 理 函 数 对 请 求 进 行 打 标 鉴 权 , 之 后 将 请 求 发 送 到 M N S 队 列 , 同 时 记 录 请 求 的 元 数 据 和 推 理 信 息 到 表 格 存 储 T a b l e S t o r e , 推 理 函 数 根 据 任 务 队 列 进 行 消 费 , 调 度 G P U 实 例 启 动 S t a b l e D i f f u s i o n 进 行 服 务 , 结 束 后 返 回 图 片 结 果 以 及 更 新 请 求 状 态 , 端 侧 通 过 页 面 上 的 轮 询 告 知 用 户 。 V o i c e A g e n t 实 时 对 话 这 是 一 个 相 对 复 杂 的 应 用 , 使 用 者 可 以 通 过 语 音 跟 背 后 的 智 能 问 答 服 务 实 时 对 话 , 同 时 还 能 够 接 收 到 来 自 智 能 服 务 的 主 动 询 问 。 整 体 依 然 采 用 事 件 驱 动 架 构 , 其 R T C S e r v e r 部 分 安 装 r o c k e t m q c l i e n t , 订 阅 中 心 化 的 服 务 t o p i c , 由 定 时 任 务 ( 主 要 是 意 图 分 析 ) 触 发 向 队 列 t o p i c 生 产 消 息 内 容 , 然 后 由 r o c k e t m q c l i e n t 消 费 , 进 行 主 动 询 问 。 V o i c e A g e n t 知 识 库 实 时 数 据 流 对 于 问 答 的 另 外 一 端 , 知 识 库 的 自 动 更 新 , 则 是 通 过 C a t c h D a t a C a p t u r e 策 略 , 比 如 由 外 部 系 统 数 据 源 触 发 , 或 者 通 过 将 文 档 上 传 O S S 触 发 。 数 据 经 过 切 片 , 向 量 化 之 后 存 储 到 向 量 数 据 库 以 及 全 文 检 索 数 据 库 。 面 向 A I 原 生 应 用 的 事 件 驱 动 架 构 最 后 分 享 一 下 作 为 A I 应 用 开 发 者 的 一 套 组 合 方 案 : 通 过 阿 里 云 云 应 用 平 台 C A P ( C l o u d A p p l i c a t i o n P l a t f o r m ) 选 出 基 础 模 型 服 务 , 如 O l l a m a , C o m f y U I , C o s y v o i c e , E m b e d d i n g 等 进 行 快 速 托 管 , 使 用 R c o k e t M Q , K a f k a , M N S , E v e n t b r i d g e 等 搭 建 数 据 流 管 道 和 消 息 中 心 , 本 地 利 用 S p r i n g A I A l i b a b a 等 框 架 开 发 后 端 服 务 , 实 现 R A G , A g e n t 等 能 力 。 前 端 使 用 N e x t j s 框 架 构 建 界 面 , 之 后 将 开 发 好 的 前 后 端 通 过 S e r v e r l e s s D e v s 工 具 部 署 到 C A P 平 台 , 进 行 线 上 调 用 访 问 , 最 终 上 生 产 采 用 云 原 生 网 关 保 驾 护 航 , 对 于 长 期 的 知 识 库 或 者 智 能 体 的 运 维 则 通 过 A R M S 进 行 指 标 监 控 。 ) : n u l l } 2 0 2 4 年 1 1 月 6 日 R o c k e t M Q 打 破 锁 性 能 瓶 颈 之 道 背 景 A p a c h e R o c k e t M Q 是 一 个 云 原 生 消 息 传 递 和 流 式 处 理 平 台 , 可 简 化 创 建 事 件 驱 动 型 应 用 程 序 的 过 程 。 多 年 来 随 着 R o c k e t M Q 的 迭 代 , 已 经 编 写 了 大 量 代 码 来 利 用 多 核 处 理 器 , 通 过 并 发 提 高 程 序 效 率 。 因 此 管 理 并 发 性 能 变 得 至 关 重 要 , 同 时 锁 对 于 确 保 在 访 问 共 享 资 源 时 多 个 执 行 线 程 安 全 同 步 至 关 重 要 。 尽 管 锁 对 于 确 保 多 核 系 统 中 的 互 斥 性 是 必 不 可 少 的 , 但 它 们 的 使 用 也 可 能 带 来 优 化 挑 战 。 随 着 并 发 系 统 内 部 变 得 越 来 越 复 杂 , 部 署 有 效 的 锁 管 理 策 略 是 保 持 性 能 的 关 键 。 因 此 , 在 G S O C 2 0 2 4 中 , 我 们 A p a c h e R o c k e t M Q 开 源 社 区 提 报 了 一 个 非 常 具 有 挑 战 性 的 题 目 : 《 G S O C 2 6 9 : O p t i m i z i n g L o c k M e c h a n i s m s i n A p a c h e R o c k e t M Q 》 。 在 这 个 题 目 中 , 我 们 旨 在 优 化 锁 行 为 , 优 化 R o c k e t M Q 的 性 能 以 及 资 源 占 用 。 通 过 这 个 题 目 , 我 们 创 新 性 地 提 出 了 A B S 锁 — — A d a p t i v e B a c k o f f S p i n L o c k 。 A B S 锁 的 思 想 是 通 过 为 轻 量 化 的 自 旋 锁 提 供 一 套 退 避 策 略 , 从 而 实 现 低 成 本 、 有 限 制 的 锁 自 旋 行 为 , 同 时 适 应 不 同 强 度 的 资 源 争 抢 情 况 。 之 所 以 取 其 缩 写 A B S , 是 因 为 该 锁 的 设 计 思 想 与 刹 车 系 统 中 的 A B S 系 统 有 一 定 相 似 性 。 在 早 期 系 统 中 使 用 的 自 旋 锁 会 一 直 进 行 自 旋 , 但 是 当 临 界 区 较 大 时 会 产 生 大 量 无 效 自 旋 , 类 似 刹 车 制 动 中 的 “ 抱 死 ” 结 果 , 这 导 致 我 们 的 资 源 利 用 急 剧 增 长 。 为 了 避 免 这 种 资 源 损 耗 , 当 前 社 区 使 用 互 斥 锁 对 其 进 行 了 替 代 , 避 免 临 界 区 较 大 时 的 资 源 浪 费 。 但 是 在 这 种 替 代 方 案 落 实 后 , 当 消 息 较 小 时 , 互 斥 锁 的 阻 塞 唤 醒 机 制 反 而 影 响 到 消 息 发 送 的 响 应 时 间 , 并 带 来 了 更 高 的 C P U 损 耗 。 由 于 自 旋 锁 在 临 界 区 较 小 时 的 响 应 时 间 ( R T ) 以 及 C P U 利 用 方 面 都 有 较 好 的 表 现 , 唯 一 的 不 足 是 在 资 源 争 抢 时 会 带 来 资 源 浪 费 。 因 此 我 们 决 定 对 自 旋 锁 进 行 优 化 , 降 低 无 效 的 资 源 损 耗 , 从 而 更 好 的 利 用 自 旋 锁 的 优 点 , 使 其 同 时 适 合 争 抢 激 烈 或 不 激 烈 的 场 景 。 在 实 践 中 , 我 们 已 经 证 明 了 调 整 锁 策 略 会 影 响 R o c k e t M Q 的 消 息 发 送 性 能 , 带 来 显 著 的 性 能 优 化 结 果 。 通 过 A B S 锁 , 我 们 还 能 解 决 开 源 使 用 者 对 锁 的 抉 择 问 题 : 在 R o c k e t M Q 消 息 投 递 时 存 在 两 种 锁 定 机 制 , S p i n L o c k ( s w a p A n d S e t ) , 以 及 R e e n t r a n t L o c k 互 斥 锁 , 但 并 无 文 档 对 其 进 行 分 析 使 用 的 场 景 。 所 以 我 们 通 过 A B S 锁 对 其 进 行 整 合 , 达 到 最 优 状 态 并 且 完 成 服 务 端 的 锁 定 机 制 闭 环 , 不 需 要 用 户 去 决 定 当 前 场 景 锁 定 机 制 的 选 取 , 自 然 而 然 地 根 据 争 抢 情 况 对 锁 参 数 进 行 微 调 。 A B S 锁 可 以 根 据 运 行 时 条 件 动 态 调 整 其 行 为 , 例 如 锁 争 用 级 别 和 争 用 同 一 资 源 的 线 程 数 。 这 可 以 通 过 最 大 限 度 地 减 少 与 锁 获 取 和 释 放 相 关 的 开 销 来 提 高 性 能 , 尤 其 是 在 高 争 用 的 情 况 下 。 通 过 实 时 监 控 系 统 的 性 能 指 标 , A B S 锁 可 以 在 不 同 的 锁 定 策 略 之 间 切 换 。 我 们 目 前 已 经 实 现 自 适 应 锁 定 机 制 ( A B S 锁 ) , 通 过 实 验 结 果 成 功 验 证 : 自 适 应 锁 定 机 制 达 到 不 同 场 景 下 单 独 使 用 互 斥 锁 / 自 旋 锁 的 最 优 效 果 , 简 而 言 之 就 是 取 得 不 同 场 景 下 最 优 锁 定 机 制 的 效 果 。 本 文 将 详 细 介 绍 A p a c h e R o c k e t M Q 的 锁 机 制 迭 代 过 程 , 并 介 绍 A B S 锁 的 优 化 效 果 。 相 关 概 念 介 绍 在 文 章 正 式 开 始 前 , 需 要 介 绍 一 些 本 文 中 可 能 频 繁 用 到 的 概 念 : 临 界 区 、 互 斥 锁 、 自 旋 锁 。 了 解 清 楚 这 些 概 念 将 有 助 于 阅 读 本 文 的 优 化 思 想 。 临 界 区 临 界 区 ( C r i t i c a l S e c t i o n ) 是 一 段 供 线 程 独 占 式 访 问 的 代 码 , 也 就 是 说 若 有 一 线 程 正 在 访 问 该 代 码 段 , 其 它 线 程 想 要 访 问 , 只 能 等 待 当 前 线 程 离 开 该 代 码 段 方 可 进 入 , 这 样 保 证 了 线 程 安 全 。 一 般 临 界 区 大 小 是 受 多 方 面 影 响 的 , 例 如 , 本 文 中 消 息 发 送 过 程 的 临 界 区 大 小 可 能 受 消 息 体 大 小 影 响 。 互 斥 锁 互 斥 锁 是 一 种 独 占 锁 , 当 线 程 A 加 锁 成 功 后 , 此 时 互 斥 锁 已 经 被 线 程 A 独 占 了 , 只 要 线 程 A 没 有 释 放 手 中 的 锁 , 线 程 B 就 会 失 败 , 就 会 释 放 掉 C P U 给 其 他 线 程 , 线 程 B 加 锁 的 代 码 就 会 被 阻 塞 。 互 斥 锁 加 锁 失 败 而 阻 塞 是 由 操 作 系 统 内 核 实 现 的 , 当 加 锁 失 败 后 , 内 核 将 线 程 置 为 睡 眠 状 态 , 等 到 锁 被 释 放 后 , 内 核 会 在 合 适 的 时 机 唤 醒 线 程 , 当 这 个 线 程 加 锁 成 功 后 就 可 以 继 续 执 行 。 具 体 的 互 斥 锁 行 为 可 以 参 考 下 图 : 互 斥 锁 带 来 的 性 能 开 销 主 要 在 两 次 线 程 上 下 文 切 换 的 成 本 。 1 . 当 线 程 加 锁 失 败 时 , 内 核 将 线 程 的 状 态 从 【 运 行 】 切 换 到 睡 眠 状 态 , 然 后 把 C P U 切 换 给 其 他 线 程 运 行 ; 2 . 当 锁 被 释 放 时 , 之 前 睡 眠 状 态 的 线 程 会 变 成 就 绪 状 态 , 然 后 内 核 就 会 在 合 适 的 时 间 把 C P U 切 换 给 该 线 程 运 行 。 自 旋 锁 自 旋 锁 通 过 C P U 提 供 的 原 子 操 作 C A S ( C o m p a r e A n d S e t ) , 在 用 户 态 完 成 加 锁 和 解 锁 操 作 , 不 会 主 动 产 生 线 程 上 下 文 切 换 , 所 以 相 比 互 斥 锁 来 说 , 会 快 一 些 开 销 小 一 些 。 它 和 互 斥 锁 的 主 要 区 别 在 于 , 当 加 锁 失 败 , 互 斥 锁 使 用 线 程 切 换 应 对 , 而 自 旋 锁 用 忙 等 待 应 对 。 R o c k e t M Q 的 锁 机 制 迭 代 下 面 , 我 们 将 介 绍 R o c k e t M Q 的 锁 机 制 迭 代 过 程 。 由 于 自 旋 锁 、 互 斥 锁 有 各 自 的 优 劣 势 : 自 旋 锁 的 优 势 在 于 其 轻 量 级 和 低 上 下 文 切 换 开 销 , 适 合 短 时 间 等 待 的 情 况 ; 而 互 斥 锁 的 优 势 在 于 能 够 节 约 资 源 , 适 合 长 时 间 占 有 锁 的 场 景 。 因 此 本 文 中 将 其 优 势 分 别 比 喻 为 “ 鱼 ” 和 “ 熊 掌 ” , 我 们 将 一 步 步 介 绍 如 何 同 时 拿 到 最 优 质 的 “ 鱼 ” 和 “ 熊 掌 ” 。 鱼 和 熊 掌 的 抉 择 — — 互 斥 / 自 旋 在 早 期 为 了 减 小 线 程 上 下 文 切 换 带 来 的 资 源 损 耗 , A p a c h e R o c k e t M Q 选 取 了 自 旋 锁 进 行 实 现 。 随 着 版 本 迭 代 R o c k e t M Q 的 并 发 压 力 日 益 增 长 , 导 致 当 临 界 区 较 大 时 , 自 旋 锁 会 产 生 大 量 无 效 自 旋 , 这 导 致 B r o k e r 的 资 源 利 用 急 剧 增 长 。 因 此 后 期 R o c k e t M Q 又 使 用 互 斥 锁 对 其 进 行 了 替 代 , 避 免 临 界 区 较 大 时 的 资 源 浪 费 。 但 是 当 消 息 较 小 时 , 互 斥 锁 的 阻 塞 唤 醒 机 制 反 而 影 响 到 R T 以 及 上 下 文 切 换 引 起 的 更 高 的 C P U 损 耗 , 自 旋 锁 在 临 界 区 较 小 时 的 响 应 时 间 ( R T ) 以 及 C P U 利 用 方 面 都 有 较 好 的 表 现 , 因 此 在 过 去 我 们 一 直 被 锁 定 机 制 的 正 确 选 取 所 困 扰 。 直 到 今 日 , R o c k e t M Q 的 内 部 仍 然 保 留 着 这 两 种 锁 , 且 通 过 一 个 开 关 进 行 控 制 : u s e R e e n t r a n t L o c k W h e n P u t M e s s a g e 。 这 意 味 着 , 使 用 者 需 要 在 启 动 b r o k e r 时 , 决 定 自 己 的 锁 类 型 — — 如 果 消 息 体 都 比 较 小 , 且 发 送 T P S 并 不 大 , 则 使 用 自 旋 锁 ; 当 消 息 体 较 大 时 , 或 者 竞 争 极 为 激 烈 时 , 则 启 用 互 斥 锁 。 鱼 和 熊 掌 兼 得 — — k 次 退 避 锁 为 了 解 决 这 个 问 题 , 我 们 启 动 了 锁 优 化 的 工 作 。 我 们 希 望 有 一 把 锁 能 够 同 时 具 备 自 旋 锁 、 互 斥 锁 的 特 点 , 同 时 适 用 于 竞 争 激 烈 和 不 激 烈 的 情 况 。 我 们 最 终 决 定 改 造 自 旋 锁 , 通 过 一 把 特 殊 的 自 旋 锁 , 使 系 统 在 各 种 竞 争 情 况 下 都 保 持 非 常 优 质 的 锁 行 为 。 自 旋 锁 由 于 无 限 自 旋 直 到 获 取 到 锁 , 在 临 界 区 较 大 时 会 产 生 较 多 的 空 转 , 耗 费 大 量 的 C P U 资 源 。 为 了 能 有 效 利 用 自 旋 锁 的 优 势 , 因 此 我 们 要 在 临 界 区 较 大 时 对 其 空 转 次 数 的 控 制 , 从 而 避 免 大 量 空 转 , 最 大 程 度 兼 容 临 界 区 较 大 的 场 景 。 最 终 我 们 通 过 对 自 旋 锁 的 行 为 建 模 , 提 出 了 k 次 退 避 锁 : 进 行 K 次 自 旋 后 还 未 获 得 锁 后 , 执 行 T h r e a d . y i e l d ( ) 将 C P U 执 行 权 交 给 操 作 系 统 。 这 种 行 为 能 够 避 免 互 斥 锁 的 无 谓 上 下 文 切 换 , 也 能 避 免 高 压 场 景 下 的 无 限 自 旋 带 来 的 C P U 损 耗 。 这 种 行 为 能 够 缓 解 系 统 压 力 , 取 得 自 旋 和 C P U 上 下 文 切 换 两 中 方 法 中 的 最 低 资 源 损 耗 。 在 刚 过 去 不 久 的 F M 2 4 会 议 上 , J u n t a o J i 已 经 做 出 k 次 自 旋 锁 的 相 关 理 论 建 模 分 享 , 以 及 实 验 验 证 [ 3 ] 。 在 k 次 自 旋 锁 的 作 用 下 , 我 们 能 找 到 系 统 性 能 的 局 部 最 优 点 , 达 到 最 大 的 t p s 性 能 。 结 果 如 下 表 所 示 : 以 X 8 6 架 构 , 同 步 刷 盘 的 行 为 为 例 。 实 验 结 果 表 明 , 在 k = 1 0 ^ 3 时 , 发 送 速 度 不 仅 达 到 峰 值 ( 1 5 5 0 1 9 . 2 0 ) , C P U 使 用 率 也 达 到 最 低 。 这 表 明 退 避 策 略 成 功 地 节 省 了 C P U 资 源 。 此 时 , C P U 支 持 更 高 的 性 能 水 平 和 较 低 的 利 用 率 水 平 , 这 表 明 性 能 瓶 颈 已 经 转 移 — — 例 如 , 可 能 已 经 转 移 到 了 磁 盘 上 。 在 表 中 可 以 观 察 到 , 在 具 有 相 同 的 k ( 1 0 ^ 3 ) 和 配 置 参 数 ( 最 新 代 码 , S Y N C 刷 盘 模 式 ) 的 A R M C P U 上 , R o c k e t M Q 的 性 能 提 高 了 1 0 . 4 % 。 此 外 , 如 上 图 所 示 , 当 k = 1 0 ^ 3 时 , C P U 使 用 量 大 幅 下 降 , 从 平 均 超 过 1 0 0 0 % 下 降 到 7 5 0 % 左 右 。 资 源 消 耗 的 减 少 表 明 , 减 轻 其 他 系 统 瓶 颈 可 能 会 导 致 更 显 著 的 性 能 提 高 。 最 优 质 的 鱼 和 熊 掌 — — A B S 锁 在 上 文 已 经 证 明 了 k 次 退 避 锁 的 有 效 性 。 但 是 当 前 还 有 一 个 问 题 : 我 们 发 现 当 临 界 区 足 够 大 时 , 自 旋 锁 的 资 源 损 耗 依 旧 远 超 互 斥 锁 ( 多 次 退 避 仍 然 获 取 不 到 ) 。 这 样 k 值 其 实 带 来 的 影 响 是 负 面 的 , 也 就 是 说 , 最 终 逃 避 不 了 上 下 文 切 换 的 成 本 , 反 而 还 带 来 了 自 旋 的 等 待 成 本 。 因 此 我 们 决 定 通 过 实 现 k 的 动 态 调 整 再 次 优 化 , 当 临 界 区 较 大 时 , 对 k 进 行 自 适 应 增 大 , 当 达 到 与 互 斥 锁 相 同 级 别 资 源 损 耗 时 ( 即 k 达 到 自 适 应 的 最 大 值 ) , 此 时 自 旋 锁 已 经 不 再 适 合 此 种 场 景 , 因 此 我 们 将 对 其 进 行 互 斥 锁 的 切 换 。 这 也 是 我 们 最 终 要 实 现 的 A B S 锁 。 1 . A B S 锁 实 现 我 们 通 过 对 不 同 的 锁 定 机 制 进 行 理 论 分 析 其 所 适 合 的 场 景 , 并 对 其 在 所 适 合 的 场 景 进 行 大 量 实 验 测 试 得 出 多 个 场 景 的 最 优 锁 定 机 制 。 最 后 通 过 对 运 行 时 条 件 的 动 态 变 化 ( 竞 争 线 程 数 / T P S / 消 息 大 小 / 临 界 区 大 小 ) 进 行 最 优 锁 定 机 制 的 切 换 。 2 . A B S 锁 的 K 值 自 适 应 策 略 上 面 我 们 论 证 出 控 制 自 旋 次 数 对 于 性 能 优 化 有 不 错 的 效 果 , 但 是 这 个 K 值 对 于 不 同 系 统 是 不 一 样 的 , 因 此 我 们 需 要 实 现 自 旋 次 数 K 的 自 适 应 。 简 而 言 之 , K 的 自 适 应 策 略 就 是 一 种 从 低 频 次 自 旋 到 高 频 次 自 旋 的 演 化 过 程 , 对 应 临 界 区 争 抢 变 得 不 断 严 重 或 是 临 界 区 不 断 变 大 的 过 程 。 当 k 逐 渐 增 大 的 过 程 中 , 可 以 增 加 在 线 程 退 避 之 前 就 获 取 到 锁 的 概 率 , 但 是 当 自 旋 次 数 增 加 到 一 定 数 量 级 时 , 此 时 自 旋 成 本 已 经 高 于 线 程 上 下 文 切 换 的 成 本 , 说 明 此 时 已 经 不 适 合 使 用 自 旋 锁 — — 所 以 此 时 退 化 为 互 斥 锁 。 通 过 实 验 , 我 们 将 自 旋 次 数 K 自 适 应 最 大 值 设 置 为 1 万 , 因 为 在 实 验 中 , 我 们 发 现 当 自 旋 次 数 大 于 1 万 时 , 竞 争 激 烈 时 带 来 的 优 化 效 果 会 受 到 显 著 影 响 , 甚 至 大 于 一 次 C P U 上 下 文 切 换 的 代 价 。 所 以 此 时 我 们 将 其 切 换 为 互 斥 阻 塞 等 待 锁 定 机 制 。 为 了 自 适 应 调 整 K 值 , 我 们 提 出 了 一 个 闭 环 的 工 作 流 , 如 下 图 所 示 : 在 图 中 我 们 可 以 看 到 , 我 们 主 要 衡 量 当 前 k 值 下 , 自 旋 获 取 锁 的 成 功 率 。 如 果 在 当 前 k 值 下 获 取 锁 的 成 功 率 不 够 高 , 则 适 当 增 加 k 值 , 这 将 带 来 更 大 的 获 取 概 率 。 但 是 如 果 一 直 增 加 都 无 法 有 效 提 高 拿 锁 成 功 率 , 则 将 其 转 为 互 斥 锁 , 会 带 来 更 高 的 效 益 。 成 为 互 斥 锁 代 表 当 前 可 能 有 较 高 的 突 发 流 量 , 导 致 对 锁 的 竞 争 变 得 激 烈 了 。 但 是 互 斥 锁 是 不 适 用 于 低 压 场 景 的 , 所 以 我 们 还 需 要 决 定 如 何 从 互 斥 锁 转 回 自 旋 锁 。 因 此 我 们 记 录 了 从 自 旋 锁 切 换 为 互 斥 锁 的 请 求 速 率 。 当 整 体 请 求 速 率 低 于 这 个 数 值 的 8 0 % 时 , 则 切 换 回 自 旋 锁 。 实 验 及 结 果 为 了 验 证 A B S 锁 的 正 确 性 以 及 性 能 优 化 效 果 , 我 们 做 了 多 组 实 验 , 包 括 性 能 测 试 以 及 混 沌 故 障 测 试 。 本 章 将 介 绍 具 体 的 实 验 设 计 以 及 结 果 。 1 . 性 能 实 验 配 置 1 . n a m e s r v 一 台 , b r o k e r 一 台 , o p e n m e s s a g e b e n c h m a r k 一 台 压 测 机 2 . 上 述 三 台 机 器 的 配 置 为 , 处 理 器 : 8 v C P U , 内 存 : 1 6 G i B , 规 格 族 : e c s . c 7 . 2 x l a r g e , 公 网 带 宽 : 5 M b p s , 内 网 带 宽 : 5 / 最 高 1 0 G b p s 。 3 . 消 息 体 大 小 分 别 设 置 了 1 K B 以 及 2 B 两 种 场 景 , 用 于 影 响 发 送 消 息 时 的 临 界 区 大 小 。 2 . 性 能 测 试 结 果 C P U 与 耗 时 的 优 化 消 息 b o d y 大 小 1 k b 时 , 我 们 记 录 了 不 同 消 息 发 送 速 率 下 的 C P U 占 用 情 况 。 结 果 如 下 图 所 示 : 结 果 表 明 , 在 消 息 量 不 断 增 加 时 , 我 们 的 自 适 应 锁 带 来 了 非 常 明 显 的 优 势 , 有 效 降 低 了 C P U 的 使 用 率 。 另 外 , 我 们 还 对 消 息 发 送 时 的 P 9 9 9 9 做 了 记 录 。 P 9 9 9 9 代 表 发 送 过 程 中 , 发 送 耗 时 排 在 9 9 . 9 9 % 的 尾 部 请 求 , 一 般 反 映 了 这 段 时 间 内 的 最 慢 请 求 速 度 。 结 果 如 下 图 所 示 : 可 以 看 到 , 在 不 同 T P S 下 , 我 们 的 自 适 应 锁 都 能 带 来 更 优 质 的 P 9 9 9 9 , 有 效 降 低 了 发 送 过 程 中 由 于 锁 争 抢 带 来 的 耗 时 。 不 过 , 尾 部 的 请 求 情 况 一 般 代 表 竞 争 极 为 激 烈 时 的 极 端 场 景 。 可 能 有 的 消 息 经 过 多 次 锁 请 求 尝 试 但 是 都 未 获 得 锁 , 因 此 导 致 了 这 种 长 尾 效 应 。 我 们 还 测 试 了 在 不 同 T P S 下 的 平 均 发 送 耗 时 情 况 , 发 现 在 竞 争 极 为 严 重 时 , 我 们 的 A B S 锁 由 于 自 带 了 一 定 自 旋 , 所 以 会 让 平 均 延 时 大 约 提 升 0 . 5 m s 。 使 用 时 需 要 仔 细 衡 量 具 体 场 景 , 以 确 定 是 否 在 高 压 时 开 启 自 适 应 锁 。 我 们 同 时 还 针 对 消 息 体 更 小 的 实 验 场 景 做 了 实 验 , 下 表 是 完 整 的 测 试 结 果 : 最 大 性 能 提 升 此 外 , 为 了 计 算 由 自 适 应 锁 带 来 的 性 能 提 升 , 我 们 还 测 试 了 B r o k e r 的 最 大 性 能 , 结 果 如 下 所 示 : | C P U A r c h | F l u s h P o l i c y | O r i g i n a l Q P S | O p t i m a l Q P S | I m p r o v e m e n t | | | | | | | | X 8 6 | A S Y N C | 1 7 6 3 1 2 . 3 5 | 1 8 4 2 1 4 . 9 8 | + 4 . 4 7 % | | X 8 6 | S Y N C | 1 7 7 4 0 3 . 1 2 | 1 8 7 2 1 5 . 4 7 | + 5 . 5 6 % | | A R M | A S Y N C | 1 8 5 3 2 1 . 4 9 | 2 0 6 4 3 1 . 8 2 | + 1 1 . 4 4 % | | A R M | S Y N C | 1 8 8 3 1 2 . 1 7 | 2 1 2 3 1 4 . 4 3 | + 1 2 . 8 5 % | 根 据 该 表 , 我 们 可 以 认 为 自 适 应 锁 同 时 能 够 在 多 个 场 景 下 均 找 到 最 大 的 性 能 点 , 实 现 性 能 的 释 放 。 实 验 总 结 经 过 如 上 所 有 实 验 数 据 , 我 们 可 以 得 出 如 下 结 论 : 1 . 在 临 界 区 较 小 时 , A B S 锁 提 供 更 高 的 T P S 以 及 更 低 的 响 应 延 时 , 极 限 T P S 提 高 1 2 . 8 5 % 甚 至 更 高 , 极 限 T P S 下 响 应 时 间 降 低 了 5 0 % 左 右 ; 2 . 在 临 界 区 较 大 时 , A B S 锁 提 供 更 低 的 R T 以 及 更 低 的 资 源 损 耗 , C P U 损 耗 从 5 0 0 % 4 0 0 % , 减 少 无 效 资 源 浪 费 。 3 . 故 障 测 试 在 软 件 工 程 领 域 , 提 倡 拥 抱 故 障 的 理 念 意 味 着 认 识 到 错 误 和 异 常 是 正 常 的 一 部 分 , 而 非 完 全 避 免 。 像 R o c k e t M Q 这 样 的 关 键 系 统 , 它 在 生 产 环 境 中 承 受 的 压 力 远 超 于 理 想 化 的 实 验 室 测 试 。 为 此 , 采 用 了 混 沌 工 程 策 略 , 这 是 一 种 主 动 探 寻 系 统 极 限 和 脆 弱 性 的 实 践 。 混 沌 工 程 的 核 心 目 标 是 增 强 系 统 的 鲁 棒 性 和 容 错 能 力 , 它 是 通 过 在 实 际 操 作 中 人 为 制 造 故 障 , 如 网 络 延 迟 、 资 源 限 制 等 , 来 观 察 系 统 如 何 应 对 突 发 状 况 。 这 样 做 是 为 了 确 认 系 统 是 否 能 在 不 确 定 和 复 杂 的 现 实 中 保 持 稳 定 , 能 否 在 面 对 真 实 世 界 的 问 题 时 依 然 能 高 效 运 作 。 R o c k e t M Q 引 入 自 适 应 锁 定 机 制 后 , 进 行 了 严 格 的 混 沌 工 程 实 验 , 包 括 但 不 限 于 模 拟 分 布 式 节 点 间 的 通 信 故 障 、 负 载 峰 值 等 情 况 , 目 的 是 验 证 新 机 制 在 压 力 下 的 性 能 和 恢 复 能 力 。 只 有 当 系 统 经 受 住 这 种 高 强 度 的 “ 拷 打 ” 测 试 , 证 明 它 能 在 不 断 变 化 的 环 境 中 维 持 高 可 用 性 , 我 们 才 认 为 这 是 一 个 成 熟 的 、 可 靠 的 解 决 方 案 。 总 结 起 来 , 通 过 混 沌 工 程 , 我 们 对 R o c k e t M Q 进 行 了 实 战 演 练 , 以 此 来 衡 量 其 实 现 高 可 用 性 的 真 正 实 力 。 并 希 望 通 过 这 样 的 故 障 测 试 , 证 明 我 们 对 锁 的 调 整 不 影 响 其 数 据 写 入 的 正 确 性 。 实 验 配 置 我 们 混 沌 测 试 的 验 证 实 验 环 境 如 下 : 1 . n a m e s r v 一 台 , 内 含 n a m e s r v 进 程 。 2 . o p e n c h a o s 的 混 沌 测 试 一 台 , 向 b r o k e r 发 出 控 制 指 令 。 3 . b r o k e r 三 台 , 同 属 一 个 集 群 , 内 含 b r o k e r 进 程 。 上 述 五 台 机 器 的 配 置 为 , 处 理 器 : 8 v C P U , 内 存 : 1 6 G i B , 规 格 族 : e c s . c 7 . 2 x l a r g e , 公 网 带 宽 : 5 M b p s , 内 网 带 宽 : 5 / 最 高 1 0 G b p s 。 在 测 试 中 , 我 们 设 置 了 如 下 的 若 干 种 随 机 测 试 场 景 , 每 种 场 景 都 会 持 续 至 少 3 0 秒 , 且 恢 复 后 会 保 证 3 0 秒 的 时 间 间 隔 再 注 入 下 一 次 故 障 : 1 . 机 器 宕 机 , 这 个 混 沌 故 障 注 入 通 过 k i l l 9 命 令 实 现 , 将 会 杀 死 范 围 内 的 随 机 进 程 。 2 . 机 器 夯 机 , 这 个 混 沌 故 障 注 入 通 过 k i l l S I G S T O P 命 令 实 现 , 模 拟 进 程 暂 停 的 情 况 。 每 组 场 景 的 测 试 至 少 重 复 5 次 , 每 次 至 少 持 续 6 0 分 钟 。 实 验 结 论 针 对 上 述 提 出 的 所 有 场 景 , 混 沌 测 试 的 总 时 长 至 少 有 : 2 ( 场 景 数 ) 5 ( 每 组 测 试 次 数 ) 6 0 ( 单 组 时 长 ) = 6 0 0 分 钟 由 于 设 置 的 注 入 时 长 3 0 s , 恢 复 时 长 3 0 s , 因 此 至 少 共 计 注 入 故 障 6 0 0 / 1 = 6 0 0 次 ( 实 际 上 注 入 时 长 、 注 入 次 数 远 多 于 上 述 统 计 值 ) 。 在 这 些 记 录 在 册 的 测 试 结 果 中 , R o c k e t M Q 无 消 息 丢 失 , 数 据 在 故 障 注 入 前 后 均 保 持 强 一 致 。 总 结 本 文 实 现 了 R o c k e t M Q 锁 定 机 制 的 迭 代 过 程 以 及 自 适 应 退 避 自 旋 锁 机 制 ( A B S 锁 ) 的 设 计 以 及 实 现 , 随 着 并 发 系 统 内 部 变 得 越 来 越 复 杂 , 部 署 有 效 的 锁 管 理 策 略 是 保 持 性 能 的 关 键 。 因 此 , 我 们 希 望 更 深 入 地 探 索 该 领 域 性 能 优 化 的 潜 力 , 探 索 性 能 的 极 限 。 同 时 我 们 希 望 在 未 来 结 合 多 种 分 布 式 锁 定 机 制 以 及 其 他 优 秀 思 想 , 对 其 进 行 实 现 以 及 性 能 测 试 , 期 待 达 到 多 端 本 地 锁 定 状 态 共 识 : 单 次 通 信 即 可 得 到 锁 的 成 果 , 减 少 无 效 网 络 通 信 以 及 更 低 的 总 线 资 源 损 耗 。 但 目 前 专 注 于 消 息 投 递 时 的 锁 定 机 制 实 现 , 并 未 对 其 进 行 具 体 实 现 以 及 测 试 。 其 它 分 布 式 锁 机 制 可 以 参 考 如 下 。 未 来 可 能 引 入 的 其 它 锁 优 化 思 想 延 迟 槽 位 思 想 ( D e l a y c a r d s l o t i d e a ) : 对 每 个 客 户 端 分 配 不 同 槽 位 的 延 时 , 让 客 户 端 进 行 延 迟 后 再 次 请 求 , 从 而 避 免 总 线 的 大 量 无 效 碰 撞 。 C L H 思 想 : 循 环 读 取 上 一 个 位 点 的 值 , 更 改 自 身 状 态 。 M C S 思 想 : 与 C L H 相 似 , 但 是 时 在 本 地 自 旋 , 更 改 下 一 个 节 点 的 状 态 。 解 决 了 C L H 在 N U M A 系 统 架 构 中 获 取 l o c k e d 域 状 态 内 存 过 远 的 问 题 S M P C P U 架 构 基 于 P p e r s i s t e n t C S M A 思 想 : P p e r s i s t e n t C S M A ( P e r s i s t e n t C a r r i e r S e n s e M u l t i p l e A c c e s s ) 是 一 种 网 络 通 信 协 议 的 思 想 , 它 通 常 用 于 描 述 分 布 式 环 境 中 如 无 线 局 域 网 ( W i F i ) 中 的 冲 突 避 免 策 略 。 这 个 思 想 起 源 于 C S M A / C D ( C a r r i e r S e n s e M u l t i p l e A c c e s s w i t h C o l l i s i o n D e t e c t i o n ) 协 议 , 但 它 引 入 了 一 种 更 持 久 的 监 听 机 制 。 1 . 基 本 流 程 : 每 个 设 备 ( 节 点 ) 在 发 送 数 据 前 会 持 续 监 听 信 道 是 否 空 闲 。 如 果 信 道 忙 , 节 点 就 会 等 待 一 段 时 间 后 再 次 尝 试 。 2 . P 计 数 器 : 当 检 测 到 信 道 忙 时 , 节 点 不 会 立 即 退 回 到 等 待 状 态 , 而 是 启 动 一 个 名 为 P ( p e r s i s t e n t p e r i o d ) 的 计 数 器 。 计 数 器 结 束 后 , 再 尝 试 发 送 。 3 . 碰 撞 处 理 : 如 果 有 多 个 节 点 同 时 开 始 发 送 , 在 信 道 上 发 生 碰 撞 , 所 有 参 与 碰 撞 的 节 点 都 会 注 意 到 并 增 加 各 自 的 P 计 数 器 后 再 试 。 这 使 得 试 图 发 送 的 数 据 包 在 更 长 的 时 间 内 有 机 会 通 过 , 提 高 了 整 体 效 率 。 4 . 恢 复 阶 段 : 当 P 计 数 器 归 零 后 , 如 果 信 道 依 然 繁 忙 , 节 点 会 进 入 恢 复 阶 段 , 选 择 一 个 新 的 随 机 延 迟 时 间 后 再 次 尝 试 。 P p e r s i s t e n t C S M A 通 过 这 种 设 计 减 少 不 必 要 的 冲 突 次 数 , 但 可 能 会 导 致 网 络 拥 塞 情 况 下 的 长 时 间 空 闲 等 待 。 参 考 链 接 [ 1 ] A p a c h e R o c k e t M Q [ 2 ] O p e n M e s s a g i n g O p e n C h a o s [ 3 ] J i , J u n t a o } ) } ) : n u l l } 2 0 2 3 年 3 月 2 8 日 R o c k e t M Q x O p e n T e l e m e t r y 分 布 式 全 链 路 追 踪 最 佳 实 践 作 者 简 介 : 艾 阳 坤 , A p a c h e R o c k e t M Q P M C M e m b e r / C o m m i t t e r , C N C F O p e n T e l e m e t r y M e m b e r , C N C F E n v o y c o n t r i b u t o r 。 在 分 布 式 系 统 中 , 多 个 服 务 之 间 的 交 互 涉 及 到 复 杂 的 网 络 通 信 和 数 据 传 输 , 其 中 每 个 服 务 可 能 由 不 同 的 团 队 或 组 织 负 责 维 护 和 开 发 。 因 此 , 在 这 样 的 环 境 下 , 当 一 个 请 求 被 发 出 并 经 过 多 个 服 务 的 处 理 后 , 如 果 出 现 了 问 题 或 错 误 , 很 难 快 速 定 位 到 根 因 。 分 布 式 全 链 路 追 踪 技 术 则 可 以 帮 助 我 们 解 决 这 个 问 题 , 它 能 够 跟 踪 和 记 录 请 求 在 系 统 中 的 传 输 过 程 , 并 提 供 详 细 的 性 能 和 日 志 信 息 , 使 得 开 发 人 员 能 够 快 速 诊 断 和 定 位 问 题 。 对 于 分 布 式 系 统 的 可 靠 性 、 性 能 和 可 维 护 性 起 到 了 非 常 重 要 的 作 用 。 R o c k e t M Q 5 . 0 与 分 布 式 全 链 路 追 踪 A p a c h e R o c k e t M Q 5 . 0 版 本 作 为 近 几 年 来 最 大 的 一 次 迭 代 , 在 整 个 可 观 测 性 上 也 进 行 了 诸 多 改 进 。 其 中 , 支 持 标 准 化 的 分 布 式 全 链 路 追 踪 就 是 一 个 重 要 的 特 性 。 R o c k e t M Q 5 . 0 可 观 测 而 由 G o o g l e 、 M i c r o s o f t 、 U b e r 和 L i g h t S t e p 联 合 发 起 的 C N C F O p e n T e l e m e t r y 作 为 O p e n T r a c i n g 和 O p e n C e n s u s 的 官 方 继 任 者 , 已 经 成 为 可 观 测 领 域 的 事 实 标 准 , R o c k e t M Q 的 分 布 式 全 链 路 追 踪 也 围 绕 O p e n T e l e m e t r y 进 行 展 开 。 分 布 式 链 路 追 踪 系 统 的 起 源 可 以 追 溯 到 2 0 0 7 年 G o o g l e 发 布 的 论 文 。 这 篇 论 文 详 细 介 绍 了 G o o g l e 内 部 使 用 的 链 路 追 踪 系 统 D a p p e r , 其 中 使 用 的 s p a n 概 念 被 广 泛 采 用 , 并 成 为 后 来 开 源 链 路 追 踪 系 统 中 的 基 础 概 念 之 一 。 D a p p e r T r a c e T r e e 在 D a p p e r 中 , 每 个 请 求 或 事 务 被 追 踪 时 都 会 创 建 一 个 s p a n , 记 录 整 个 请 求 或 事 务 处 理 过 程 中 的 各 个 组 件 和 操 作 的 时 间 和 状 态 信 息 。 这 些 s p a n 可 以 嵌 套 , 形 成 一 个 树 形 结 构 , 用 于 表 示 整 个 请 求 或 事 务 处 理 过 程 中 各 个 组 件 之 间 的 依 赖 关 系 和 调 用 关 系 。 后 来 , 很 多 开 源 链 路 追 踪 系 统 , 如 Z i p k i n 和 O p e n T r a c i n g , 也 采 用 了 类 似 的 s p a n 概 念 来 描 述 分 布 式 系 统 中 的 链 路 追 踪 信 息 。 现 在 , 合 并 了 O p e n T r a c i n g 和 O p e n C e n s u s 的 C N C F O p e n T e l e m e t r y 自 然 也 一 样 采 用 了 s p a n 概 念 , 并 在 此 基 础 上 进 行 了 进 一 步 发 展 。 O p e n T e l e m e t r y 为 m e s s a g i n g 相 关 的 s p a n 定 义 了 , 旨 在 制 定 一 套 与 特 定 消 息 系 统 无 关 的 s p e c i f i c a t i o n , 而 O p e n T e l m e t r y 自 身 的 开 发 其 实 也 都 是 由 s p e c i f i c a t i o n 驱 动 进 行 展 开 。 S p e c i f i c a t i o n D r i v e n D e v e l o p m e n t M e s s a g i n g S p a n 定 义 S p e c i f a i t i o n 中 描 述 了 m e s s a g i n g s p a n 的 拓 扑 关 系 , 包 括 代 表 消 息 发 送 、 接 收 和 处 理 的 不 同 s p a n 之 间 的 父 子 和 链 接 关 系 。 关 于 具 体 的 定 义 可 以 参 考 : 。 对 应 到 R o c k e t M Q 中 , 有 三 种 不 同 的 s p a n : | S p a n | D e s c r i p t i o n | | | | | s e n d | 消 息 的 发 送 过 程 。 s p a n 以 一 次 发 送 行 为 开 始 , 成 功 或 者 失 败 / 抛 异 常 结 束 。 消 息 发 送 的 内 部 重 试 会 被 记 录 成 多 条 s p a n 。 | | r e c e i v e | 消 费 者 中 接 收 消 息 的 长 轮 询 过 程 , 与 长 轮 询 的 生 命 周 期 保 持 一 致 。 | | p r o c e s s | 对 应 P u s h C o n s u m e r 里 M e s s a g e L i s t e n e r 中 对 消 息 的 处 理 过 程 , s p a n 以 进 入 M e s s a g e L i s t e n e r 为 开 始 , 离 开 M e s s a g e L i s t e n e r 为 结 束 。 | 特 别 地 , 默 认 情 况 下 , r e c e i v e s p a n 是 不 启 用 的 。 在 r e c e i v e s p a n 启 用 和 不 启 用 的 两 种 情 况 下 , s p a n 之 间 的 组 织 关 系 是 不 同 的 : 启 用 r e c e i v e s p a n 前 后 的 s p a n 关 系 在 没 有 启 用 r e c e i v e s p a n 的 情 况 下 , p r o c e s s s p a n 会 作 为 s e n d s p a n 的 c h i l d ; 而 当 r e c e i v e s p a n 启 用 的 情 况 下 , p r o c e s s s p a n 会 作 为 r e c e i v e s p a n 的 c h i l d , 同 时 l i n k 到 s e n d s p a n 。 M e s s a g i n g A t t r i b u t e s 定 义 语 义 约 定 中 规 定 了 随 s p a n 携 带 的 通 用 属 性 的 统 一 名 称 , 这 包 括 但 不 限 于 : m e s s a g i n g . m e s s a g e . i d : 消 息 的 唯 一 标 识 符 。 m e s s a g i n g . d e s t i n a t i o n : 消 息 发 送 的 目 的 地 , 通 常 是 一 个 队 列 或 主 题 名 称 。 m e s s a g i n g . o p e r a t i o n : 对 消 息 的 操 作 类 型 , 例 如 发 送 、 接 收 、 确 认 等 。 具 体 可 以 查 看 。 特 别 地 , 不 同 的 消 息 系 统 可 能 会 有 自 己 特 定 的 行 为 和 属 性 , , 这 包 括 : | A t t r i b u t e | T y p e | D e s c r i p t i o n | | | | | | m e s s a g i n g . r o c k e t m q . n a m e s p a c e | s t r i n g | R o c k e t M Q 资 源 命 名 空 间 , 暂 未 启 用 | | m e s s a g i n g . r o c k e t m q . c l i e n t _ g r o u p | s t r i n g | R o c k e t M Q p r o d u c e r / c o n s u m e r 负 载 均 衡 组 , 5 . 0 只 对 c o n s u m e r 生 效 | | m e s s a g i n g . r o c k e t m q . c l i e n t _ i d | s t r i n g | 客 户 端 唯 一 标 识 符 | | m e s s a g i n g . r o c k e t m q . m e s s a g e . d e l i v e r y _ t i m e s t a m p | i n t | 定 时 消 息 定 时 时 间 , 只 对 5 . 0 生 效 | | m e s s a g i n g . r o c k e t m q . m e s s a g e . d e l a y _ t i m e _ l e v e l | i n t | 定 时 消 息 定 时 级 别 , 只 对 4 . 0 生 效 | | m e s s a g i n g . r o c k e t m q . m e s s a g e . g r o u p | s t r i n g | 顺 序 消 息 分 组 , 只 对 5 . 0 生 效 | | m e s s a g i n g . r o c k e t m q . m e s s a g e . t y p e | s t r i n g | 消 息 类 型 , 可 能 为 n o r m a l / f i f o / d e l a y / t r a n s a c t i o n , 只 对 5 . 0 生 效 | | m e s s a g i n g . r o c k e t m q . m e s s a g e . t a g | s t r i n g | 消 息 t a g | | m e s s a g i n g . r o c k e t m q . m e s s a g e . k e y s | s t r i n g [ ] | 消 息 k e y s , 可 以 有 多 个 | | m e s s a g i n g . r o c k e t m q . c o n s u m p t i o n _ m o d e l | s t r i n g | 消 息 消 费 模 型 , 可 能 为 c l u s t e r i n g / b r o a d c a s t i n g , 5 . 0 b r o a d c a s t i n g 被 废 弃 | 快 速 开 始 在 O p e n T e l e m e t r y 中 有 两 种 不 同 的 方 式 可 以 为 应 用 程 序 添 加 可 观 测 信 息 : A u t o m a t i c I n s t r u m e n t a t i o n : 无 需 编 写 任 何 代 码 , 只 需 进 行 简 单 的 配 置 即 可 自 动 生 成 可 观 测 信 息 , 包 括 应 用 程 序 中 使 用 的 类 库 和 框 架 , 这 样 可 以 更 方 便 地 获 取 基 本 的 性 能 和 行 为 数 据 。 M a n u a l I n s t r u m e n t a t i o n : 需 要 编 写 代 码 来 创 建 和 管 理 可 观 测 数 据 , 并 通 过 e x p o r t e r 导 出 到 指 定 的 目 标 。 这 样 可 以 更 灵 活 自 由 地 控 制 用 户 想 要 观 测 的 逻 辑 和 功 能 。 在 J a v a 类 库 中 , 前 者 是 一 种 更 为 常 见 的 使 用 形 式 。 R o c k e t M Q 5 . 0 客 户 端 的 t r a c e 也 依 托 于 a u t o m a t i c i n s t r u m e n t a t i o n 进 行 实 现 。 在 J a v a 程 序 中 , a u t o m a t i c i n s t r u m e n t a t i o n 的 表 现 形 式 为 挂 载 J a v a a g e n t 。 在 过 去 的 一 年 里 , 我 们 将 推 入 了 O p e n T e l e m e t r y 官 方 社 区 。 现 在 , 只 需 要 在 J a v a 程 序 运 行 时 挂 载 上 O p e n T e l e m e t r y a g e n t , 即 可 实 现 对 应 用 程 序 透 明 的 分 布 式 全 链 路 追 踪 。 除 此 之 外 , A u t o m a t i c I n s t r u m e n t a t i o n 和 M a n u a l I n s t r u m e n t a t i o n 并 不 冲 突 , A u t o m a t i c I n s t r u m e n t a t i o n 中 所 使 用 的 关 键 对 象 会 被 注 册 成 全 局 对 象 , 在 M a n u a l I n s t r u m e n t a t i o n 的 使 用 方 式 中 也 可 以 非 常 方 便 的 获 取 。 实 现 两 个 I n s t r u m e n t a t i o n 共 用 一 套 配 置 , 非 常 灵 活 和 方 便 。 首 先 准 备 好 R o c k e t M Q 5 . 0 J a v a 客 户 端 , 可 以 参 考 进 行 消 息 的 收 发 。 关 于 R o c k e t M Q 5 . 0 的 更 多 细 节 , 欢 迎 大 家 参 考 和 关 注 和 。 然 后 准 备 好 O p e n T e l e m e t r y a g e n t j a r , 可 以 从 O p e n T e l e m e t r y 官 方 , 在 应 用 程 序 启 动 时 增 加 j a v a a g e n t : y o u r p a t h / o p e n t e l e m e t r y j a v a a g e n t . j a r 即 可 。 可 以 通 过 设 置 O T E L _ E X P O R T E R _ O T L P _ E N D P O I N T 环 境 变 量 来 设 置 O p e n T e l e m e t r y c o l l e c t o r 的 接 入 点 。 默 认 情 况 下 , 按 照 O p e n T e l e m e t r y 中 关 于 m e s s a g i n g 的 规 范 , 只 有 s e n d 和 p r o c e s s 的 s p a n 会 被 启 用 , r e c e i v e 的 s p a n 是 默 认 不 启 用 的 , 如 果 想 要 启 用 r e c e i v e s p a n , 需 要 手 动 设 置 D o t e l . i n s t r u m e n t a t i o n . m e s s a g i n g . e x p e r i m e n t a l . r e c e i v e t e l e m e t r y . e n a b l e d = t r u e 。 场 景 最 佳 实 践 目 前 , 主 流 的 云 服 务 供 应 商 都 为 O p e n T e l e m e t r y 提 供 了 良 好 的 支 持 , 阿 里 云 上 的 S L S 和 A R M S 两 款 可 观 测 产 品 都 提 供 了 基 于 O p e n T e l e m e t r y 的 分 布 式 全 链 路 追 踪 服 务 。 为 了 更 好 地 展 示 分 布 式 全 链 路 追 踪 的 过 程 , 这 里 提 供 了 一 个 代 码 示 例 : 。 在 这 个 代 码 示 例 中 , 会 启 动 三 个 不 同 的 进 程 , 涉 及 三 种 不 同 类 库 和 业 务 逻 辑 之 间 的 相 互 调 用 , 展 示 了 一 个 在 分 布 式 环 境 较 复 杂 中 间 件 之 间 进 行 交 互 的 典 型 案 例 。 请 求 首 先 会 从 g R P C 客 户 端 发 往 g R P C 服 务 端 , 在 g R P C 服 务 端 收 到 请 求 之 后 , 会 向 R o c k e t M Q 5 . 0 的 P r o d u c e r 往 服 务 端 发 送 一 条 消 息 , 然 后 再 回 复 对 应 的 r e s p o n s e 给 客 户 端 。 在 R o c k e t M Q 5 . 0 的 P u s h C o n s u m e r 接 受 到 消 息 之 后 , 会 在 M e s s a g e L i s t e n e r 中 使 用 A p a c h e H t t p C l i e n t 往 淘 宝 网 发 送 一 条 G E T 请 求 。 示 例 代 码 调 用 链 路 特 别 地 , g R P C 客 户 端 在 发 起 具 体 的 调 用 是 在 一 个 上 游 业 务 s p a n 的 生 命 周 期 之 内 进 行 的 , 这 个 s p a n 我 们 称 之 为 E x a m p l e U p s t r e a m S p a n , R o c k e t M Q 5 . 0 P u s h C o n s u m e r 在 收 到 消 息 之 后 , 也 会 在 M e s s a g e L i s t e n e r 里 执 行 其 他 的 业 务 操 作 , 也 会 有 对 应 的 s p a n , 我 们 称 之 为 E x a m p l e D o w n s t r e a m S p a n 。 那 么 默 认 在 r e c e i v e s p a n 没 有 启 用 的 情 况 下 , 按 照 开 始 时 间 的 顺 序 , 会 先 后 存 在 7 个 s p a n 。 分 别 是 : E x a m p l e U p s t r e a m S p a n 。 g R P C 客 户 端 请 求 s p a n 。 g R P C 服 务 端 响 应 s p a n 。 R o c k e t M Q 5 . 0 P r o d u c e r 的 s e n d s p a n 。 R o c k e t M Q 5 . 0 P r o d u c e r 的 p r o c e s s s p a n 。 H T T P 请 求 s p a n 。 E x a m p l e D o w n s t r e a m S p a n 。 R o c k e t M Q 5 . 0 对 接 S L S T r a c e 服 务 首 先 在 阿 里 云 日 志 服 务 中 创 建 T r a c e 服 务 。 然 后 获 取 接 入 点 , 项 目 和 实 例 名 称 等 信 息 , 具 体 可 以 参 考 。 在 补 充 好 信 息 之 后 完 成 接 入 之 后 , 稍 等 一 会 就 可 以 看 到 对 应 的 T r a c e 信 息 已 经 被 上 传 到 S L S t r a c e 服 务 中 : S L S T r a c e 服 务 分 布 式 全 链 路 展 示 T r a c e 服 务 其 实 是 将 相 关 数 据 存 储 到 日 志 中 , 因 此 这 些 数 据 也 可 以 通 过 S L S 的 S Q L 语 法 查 询 得 到 。 通 过 T r a c e 数 据 , 我 们 可 以 很 方 便 知 道 用 户 的 操 作 系 统 环 境 , J a v a 版 本 等 一 系 列 基 础 信 息 。 消 息 的 发 送 延 时 , 失 败 与 否 , 消 息 是 否 准 时 投 递 到 了 客 户 端 , 以 及 客 户 端 本 地 消 费 耗 时 , 消 费 失 败 与 否 等 一 系 列 有 效 信 息 , 可 以 帮 助 我 们 十 分 有 效 地 进 行 问 题 排 查 。 除 此 之 外 , S L S T r a c e 服 务 的 d e m o 页 也 提 供 了 基 于 R o c k e t M Q 5 . 0 定 制 的 消 息 中 间 件 大 盘 , 生 动 展 示 了 利 用 T r a c e 数 据 得 到 的 发 送 成 功 率 , 端 到 端 延 时 等 一 系 列 指 标 。 : 展 示 利 用 T r a c e 数 据 得 到 的 包 括 发 送 延 时 、 发 送 成 功 率 、 消 费 成 功 率 、 端 到 端 延 时 在 内 的 一 系 列 指 标 。 : 可 以 根 据 上 一 步 得 到 的 差 错 长 m e s s a g e i d 进 行 进 一 步 的 细 粒 度 查 询 。 消 息 中 间 件 分 析 R o c k e t M Q 5 . 0 对 接 应 用 实 时 监 控 服 务 ( A R M S ) 首 先 进 入 应 用 实 时 监 控 服 务 A R M S 控 制 台 , 点 击 接 入 中 心 中 的 O p e n T e l e m e t r y , 选 择 j a v a 应 用 程 序 下 的 自 动 探 测 , 获 取 启 动 参 数 并 修 改 至 自 己 的 j a v a 应 用 程 序 , 具 体 可 以 参 考 。 配 置 好 参 数 之 后 , 启 动 自 己 的 相 关 应 用 程 序 , 稍 等 一 会 儿 , 就 可 以 在 A R M S T r a c e E x p l o r e r 里 看 到 对 应 的 数 据 了 。 T r a c e E x p l o r e r 还 可 以 查 看 s p a n 之 间 的 时 序 关 系 。 A R M S T r a c e E x p l o r e r 分 布 式 全 链 路 追 踪 展 示 具 体 地 , 可 以 点 进 每 个 s p a n 查 看 详 细 的 a t t r i b u t e s / r e s o u r c e s / e v e n t s 等 信 息 。 除 此 之 外 , A R M S 还 支 持 通 过 使 用 O p e n T e l e m e t r y C o l l e c t o r 转 发 的 形 式 来 收 集 应 用 程 序 的 T r a c e 数 据 。 趋 势 与 思 考 随 着 现 代 应 用 程 序 架 构 的 不 断 演 进 , 可 观 测 性 的 重 要 性 日 益 凸 显 。 它 不 仅 可 以 帮 助 我 们 快 速 发 现 和 解 决 系 统 中 的 问 题 , 还 提 高 应 用 程 序 的 可 靠 性 和 性 能 , 同 时 也 是 实 现 D e v O p s 的 关 键 部 分 。 在 相 关 领 域 , 也 陆 续 诞 生 了 像 D a t a D o g 和 D y n a t r a c e 这 样 的 明 星 公 司 。 近 年 来 涌 现 了 一 些 新 兴 技 术 , 如 e B P F ( E x t e n d e d B e r k e l e y P a c k e t F i l t e r ) 和 S e r v i c e M e s h 也 为 可 观 测 领 域 提 供 了 一 些 新 的 思 路 : e B P F 可 以 在 内 核 层 面 运 行 , 通 过 动 态 注 入 代 码 来 监 控 系 统 的 行 为 。 它 被 广 泛 应 用 于 实 时 网 络 和 系 统 性 能 监 控 、 安 全 审 计 和 调 试 等 任 务 , 并 且 性 能 影 响 很 小 , 未 来 也 可 以 作 为 c o n t i n u o u s p r o f i l i n g 的 一 种 选 择 。 S e r v i c e M e s h 则 通 过 在 应 用 程 序 之 间 注 入 代 理 层 实 现 流 量 管 理 、 安 全 和 可 观 测 性 等 功 能 。 代 理 层 可 以 收 集 和 报 告 有 关 流 量 的 各 种 指 标 和 元 数 据 , 从 而 帮 助 我 们 了 解 系 统 中 各 个 组 件 的 行 为 和 性 能 。 S e r v i c e M e s h 中 反 映 出 的 技 术 趋 势 很 大 一 部 分 已 经 在 R o c k e t M Q 5 . 0 p r o x y 中 得 到 了 应 用 , 我 们 也 在 更 多 地 将 可 观 测 指 标 往 p r o x y 进 行 收 敛 。 当 前 的 T r a c e 链 路 未 来 也 在 考 虑 和 服 务 端 一 起 进 行 关 联 , 并 打 造 用 户 侧 , 运 维 侧 , 跨 多 应 用 的 全 方 位 链 路 追 踪 体 系 。 除 此 之 外 还 可 以 将 T r a c e 数 据 与 M e t r i c s 数 据 通 过 E x e m p l a r s 等 技 术 进 行 联 动 。 实 现 面 到 线 , 线 到 点 的 终 极 排 查 效 果 。 在 可 观 测 领 域 , R o c k e t M Q 也 在 不 断 探 索 和 摸 索 更 加 领 先 的 可 观 测 手 段 , 以 帮 助 开 发 者 和 客 户 更 快 更 省 心 地 发 现 系 统 中 的 隐 患 。 特 别 感 谢 阿 里 云 S L S 团 队 的 千 乘 同 学 和 A R M S 团 队 的 垆 皓 同 学 在 接 入 过 程 提 供 的 帮 助 和 支 持 ! 相 关 链 接 R o c k e t M Q 5 . 0 客 户 端 : O p e n T e l e m e t r y I n s t r u m e n t a t i o n f o r R o c k e t M Q 5 . 0 : R o c k e t M Q O p e n T e l e m e t r y 示 例 : 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } 2 0 2 2 年 9 月 3 0 日 行 业 实 践 : R o c k e t M Q 业 务 集 成 典 型 行 业 应 用 和 实 践 消 息 典 型 应 用 场 景 阿 里 云 拥 有 丰 富 的 消 息 产 品 家 族 , 除 了 R o c k e t M Q 以 外 , 还 有 大 家 熟 知 的 对 标 开 源 的 云 K a f k a 、 支 持 A M Q P 协 议 的 开 源 消 息 队 列 R a b b i t M Q 、 物 联 网 通 信 网 关 M Q T T 、 对 标 A W S S Q S / S N S 的 S e r v e r l e s s 版 消 息 M N S ( 现 在 也 是 轻 量 版 R o c k e t M Q ) 以 及 云 上 事 件 总 线 、 事 件 中 心 E e v e n t B r i d g e 。 阿 里 云 所 有 消 息 产 品 均 采 用 R o c k e t M Q 作 为 底 层 存 储 引 擎 , 为 用 户 提 供 稳 定 、 可 靠 、 高 性 能 的 消 息 通 信 能 力 , 比 如 百 万 T P S 、 百 万 队 列 、 毫 秒 级 通 信 延 迟 、 分 级 存 储 、 S e r v e r l e s s 弹 性 等 众 多 的 消 息 产 品 。 也 带 来 了 丰 富 的 应 用 场 景 , 分 为 应 用 集 成 和 数 据 集 成 两 大 类 。 应 用 集 成 以 R o c k e t M Q 为 主 , 应 用 最 为 广 泛 , 本 文 也 将 分 享 R o c k e t M Q 在 微 服 务 解 耦 、 电 商 交 易 、 金 融 支 付 等 场 景 下 的 最 佳 实 践 , 比 如 银 行 的 交 易 流 水 、 保 单 的 支 付 流 转 等 。 R a b b i t M Q 、 M Q T T 也 主 要 用 于 应 用 集 成 场 景 , 比 如 物 联 网 、 I o T 双 向 通 信 、 云 产 品 的 事 件 通 知 以 及 后 处 理 等 。 对 于 新 建 的 业 务 场 景 , 一 般 首 推 R o c k e t M Q 作 为 消 息 选 型 , 因 为 R o c k e t M Q 拥 有 最 丰 富 的 功 能 特 性 ; 而 对 于 存 量 的 业 务 迁 移 , 则 可 以 根 据 具 体 使 用 的 消 息 产 品 来 进 行 选 择 , 以 降 低 迁 移 成 本 。 数 据 集 成 以 云 K a f k a 为 主 , 在 大 数 据 分 析 、 日 志 采 集 分 析 等 场 景 下 应 用 最 为 广 泛 , 比 如 游 戏 的 玩 家 操 作 、 广 告 埋 点 、 数 据 分 析 、 应 用 数 据 监 控 等 。 各 种 S a a S 类 的 集 成 、 聚 石 塔 、 电 商 数 据 打 通 等 场 景 , 则 主 要 使 用 E v e n t B r i d g e 。 更 多 的 产 品 选 型 对 比 , 可 以 参 考 专 题 页 中 的 消 息 队 列 产 品 选 型 。 业 务 消 息 使 用 场 景 R o c k e t M Q 经 过 阿 里 集 团 内 部 十 年 锤 炼 , 经 过 双 1 1 大 促 等 万 亿 级 规 模 的 实 时 场 景 验 证 , S L A 最 高 可 支 持 4 个 9 , 数 据 可 靠 性 支 持 9 个 9 。 以 微 服 务 解 耦 、 订 单 交 易 、 金 融 支 付 等 场 景 为 例 , 在 互 联 网 、 电 商 、 零 售 、 金 融 等 行 业 , 消 息 的 使 用 量 非 常 大 。 尤 其 是 在 秒 杀 大 促 时 , 为 了 保 障 系 统 的 稳 定 运 行 , 需 要 R o c k e t M Q 进 行 削 峰 填 谷 。 另 外 金 融 客 户 对 每 笔 交 易 、 每 个 订 单 也 都 要 求 数 据 不 能 丢 失 。 因 此 在 此 类 场 景 普 遍 对 消 息 的 可 靠 传 输 、 海 量 并 发 、 低 延 迟 、 稳 定 性 与 容 灾 等 有 着 非 常 高 的 要 求 。 R o c k e t M Q 提 供 了 丰 富 的 消 息 类 型 , 比 如 事 务 消 息 、 定 时 消 息 、 顺 序 消 息 等 。 在 交 易 系 统 里 , 为 了 简 化 交 易 流 程 , 一 般 使 用 事 务 消 息 和 定 时 消 息 。 同 时 R o c k e t M Q 也 提 供 了 消 息 轨 迹 查 询 、 消 息 d a s h b o a r d , 可 以 非 常 方 便 地 对 每 个 消 息 进 行 回 溯 , 对 每 个 t o p i c 或 者 g r o u p 进 行 监 测 。 R o c k e t M Q 5 . 0 也 提 供 了 丰 富 的 实 例 规 格 , 从 百 级 别 Q P S 到 百 万 级 Q P S , 可 以 覆 盖 大 部 分 应 用 场 景 。 R o c k e t M Q 默 认 提 供 多 副 本 、 多 可 用 区 部 署 , 也 提 供 了 跨 地 域 消 息 路 由 能 力 , 支 持 客 户 构 建 高 可 用 容 灾 或 多 活 , 且 R o c k e t M Q 能 够 支 持 9 9 . 9 % 的 消 息 R T 在 1 0 m s 传 输 。 R o c k e t M Q 事 务 消 息 举 例 实 现 订 单 状 态 机 异 步 流 转 以 订 单 状 态 机 异 步 流 转 为 例 。 此 前 , 如 果 收 到 一 笔 订 单 交 易 , 需 要 逐 个 通 知 下 游 的 服 务 模 块 , 比 如 需 要 更 新 购 物 车 、 更 新 积 分 等 。 每 个 业 务 模 块 耦 合 在 一 起 会 导 致 大 促 时 的 流 量 峰 值 非 常 大 , 需 要 每 个 服 务 模 块 保 障 其 处 理 性 能 。 而 基 于 R o c k e t M Q 的 事 务 消 息 能 力 , 即 可 轻 松 实 现 订 单 子 流 程 系 统 的 异 步 解 耦 和 流 量 的 削 峰 填 谷 , 事 务 消 息 可 以 确 保 数 据 库 订 单 状 态 持 久 化 和 下 游 通 知 的 事 务 性 。 收 到 L B L 订 单 交 易 时 , 可 以 先 向 R o c k e t M Q 发 送 一 条 半 事 务 消 息 , 此 时 R o c k e t M Q 会 h o l d 住 消 息 , 等 核 心 交 易 事 务 完 成 后 再 向 M Q 提 交 确 认 半 事 务 消 息 的 状 态 , 并 执 行 下 游 服 务 模 块 的 通 知 。 假 设 核 心 交 易 模 块 失 败 , 则 会 废 弃 之 前 提 交 的 半 事 务 消 息 , 不 通 知 下 游 。 对 比 此 前 的 传 统 事 务 模 块 , 使 用 R o c k e t M Q 可 以 大 幅 简 化 交 易 链 路 , 缩 短 下 单 耗 时 。 尤 其 是 在 大 促 场 景 下 , 可 以 解 耦 下 游 的 服 务 模 块 , 提 供 削 峰 填 谷 的 能 力 。 超 时 中 心 R o c k e t M Q 的 定 时 消 息 场 景 也 是 常 见 的 使 用 方 式 。 比 如 双 1 1 等 大 促 场 景 存 在 大 量 预 售 订 单 、 定 点 尾 款 等 , 会 带 来 大 量 定 时 任 务 。 在 电 商 交 易 过 程 中 , 订 单 流 转 也 存 在 多 个 超 时 状 态 的 任 务 , 处 理 超 时 状 态 的 任 务 需 要 确 保 可 靠 及 时 。 以 传 统 的 方 案 进 行 构 建 分 布 式 调 度 机 制 实 现 的 时 候 , 比 如 基 于 定 时 器 调 度 延 迟 大 , 可 能 会 存 在 性 能 瓶 颈 。 而 采 用 R o c k e t M Q 的 定 时 消 息 , 实 现 将 变 得 非 常 简 单 。 定 时 任 务 只 需 提 交 一 条 延 迟 消 息 到 R o c k e t M Q , 由 R o c k e t M Q 保 障 定 时 消 息 达 到 秒 级 的 精 度 , 最 高 可 支 持 百 万 级 别 的 T P S 能 力 , 同 时 也 能 支 持 消 息 的 消 费 重 试 , 保 障 任 务 可 靠 触 发 , 相 比 传 统 的 使 用 方 式 大 大 简 化 了 定 时 的 复 杂 度 。 R o c k e t M Q 灰 度 策 略 举 例 微 服 务 全 链 路 灰 度 微 服 务 场 景 下 , 精 准 地 控 制 灰 度 流 量 并 进 行 灰 度 版 本 验 证 , 是 保 障 线 上 业 务 稳 定 运 行 的 关 键 。 大 部 分 情 况 下 , 用 户 通 过 划 分 不 同 的 环 境 来 进 行 灰 度 发 布 , 对 应 R o c k e t M Q 的 不 同 实 例 。 但 是 很 多 用 户 希 望 能 够 简 化 环 境 管 理 , 尽 可 能 复 用 线 上 资 源 , 结 合 消 息 来 提 供 微 服 务 全 链 路 灰 度 能 力 。 如 上 图 所 示 , 线 上 已 经 在 运 行 的 微 服 务 模 块 游 A 、 B 、 C , C 模 块 会 产 生 消 息 , 并 由 A 模 块 进 行 消 费 。 此 时 对 服 务 模 块 A 和 C 做 灰 度 发 布 , 则 线 上 会 存 在 两 条 泳 道 , 一 条 是 正 常 的 业 务 流 量 , 一 条 是 灰 度 链 路 。 我 们 希 望 线 上 版 本 C 模 块 生 产 的 消 息 能 够 被 线 上 版 本 A 模 块 进 行 消 费 , 灰 度 版 本 C 模 块 生 产 的 消 息 能 够 被 灰 度 版 本 A 模 块 进 行 消 费 。 R o c k e t M Q 支 持 透 传 环 境 标 签 , 可 在 生 产 端 给 消 息 属 性 添 加 标 签 , 然 后 开 启 R o c k e t M Q 的 S Q L 9 2 语 法 过 滤 , 服 务 端 即 可 完 成 消 息 的 过 滤 和 路 由 , 从 而 降 低 客 户 端 的 压 力 。 本 文 讲 述 了 R o c k e t M Q 的 业 务 消 息 场 景 、 一 些 功 能 特 性 的 使 用 方 法 , 包 括 事 务 消 息 、 定 时 消 息 、 消 息 全 链 路 灰 度 等 , 欢 迎 大 家 尝 试 使 用 。 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } 2 0 2 2 年 9 月 2 3 日 A p a c h e R o c k e t M Q 在 阿 里 云 大 规 模 商 业 化 实 践 之 路 阿 里 云 消 息 队 列 R o c k e t M Q 商 业 化 历 程 R o c k e t M Q 诞 生 于 2 0 1 2 年 , 诞 生 即 开 源 。 2 0 1 2 ~ 2 0 1 5 年 , R o c k e t M Q 一 直 在 通 过 内 部 电 商 业 务 打 磨 自 身 服 务 能 力 , 并 在 2 0 1 5 年 于 阿 里 云 上 线 公 测 。 2 0 1 6 年 , 阿 里 云 R o c k e t M Q 完 成 商 业 化 , 同 时 被 捐 赠 给 A p a c h e 基 金 会 , 同 年 获 得 了 年 度 受 欢 迎 中 国 开 源 软 件 荣 誉 。 在 A p a c h e 孵 化 期 间 , A p a c h e R o c k e t M Q 经 历 了 快 速 发 展 , 2 0 1 7 年 即 毕 业 成 为 了 A p a c h e 顶 级 项 目 。 同 年 , A p a c h e R o c k e t M Q T L P R o c k e t M Q 4 . 0 正 式 发 布 。 此 后 , R o c k e t M Q 4 . 0 经 历 了 长 足 发 展 , 期 间 阿 里 云 商 业 和 开 源 相 辅 相 成 、 齐 头 并 进 , 直 到 今 天 , 共 同 迈 入 R o c k e t M Q 5 . 0 时 代 。 R o c k e t M Q 5 . 0 发 布 后 , 阿 里 云 商 业 会 持 续 采 取 O p e n C o r e 的 发 展 模 式 , 秉 承 上 游 优 先 的 社 区 发 展 原 则 , 与 社 区 一 起 将 R o c k e t M Q 打 造 为 一 个 超 融 合 的 数 据 处 理 平 台 。 阿 里 云 消 息 队 列 产 品 矩 阵 阿 里 云 基 于 R o c k e t M Q 消 息 底 座 , 构 建 了 多 元 化 的 消 息 产 品 系 列 。 R o c k e t M Q 是 阿 里 云 主 打 的 消 息 品 牌 , 互 联 网 新 兴 业 务 领 域 首 选 的 数 据 通 道 。 消 息 队 列 K a f k a 是 大 数 据 的 首 选 数 据 通 道 , 微 消 息 队 列 M Q T T 是 移 动 互 联 网 和 物 联 网 的 数 据 通 道 , 消 息 队 列 R o c k e t M Q 是 传 统 业 务 领 域 的 数 据 通 道 。 消 息 服 务 M N S 是 R o c k e t M Q 轻 量 版 , 主 要 应 用 于 应 用 集 成 领 域 , 为 平 台 型 应 用 提 供 简 单 的 队 列 服 务 。 事 件 总 线 E v e n t B r i d g e 定 位 为 云 上 事 件 枢 纽 , 旨 在 阿 里 云 上 构 建 统 一 的 事 件 中 心 。 阿 里 云 消 息 队 列 产 品 矩 阵 完 全 构 建 在 R o c k e t M Q 之 上 , 基 本 实 现 了 应 用 场 景 全 覆 盖 , 包 括 微 服 务 解 耦 、 S a a S 集 成 、 物 联 网 、 大 数 据 或 日 志 收 集 生 态 , 同 时 也 在 内 部 覆 盖 了 阿 里 巴 巴 所 有 业 务 , 在 云 上 为 数 万 阿 里 云 企 业 提 供 了 优 质 的 消 息 服 务 。 阿 里 云 的 消 息 产 品 矩 阵 涵 盖 了 互 联 网 、 大 数 据 、 移 动 互 联 网 等 领 域 业 务 场 景 , 为 云 原 生 客 户 提 供 不 可 或 缺 的 一 站 式 解 决 方 案 。 R o c k e t M Q 在 阿 里 云 商 业 化 历 程 中 , 一 直 致 力 于 探 索 业 务 消 息 实 践 , 也 孵 化 了 大 量 业 务 消 息 特 性 , 并 持 续 反 哺 到 开 源 社 区 。 R o c k e t M Q 4 . 0 业 务 消 息 探 索 之 路 R o c k e t M Q 在 商 业 化 过 程 中 , 陆 续 推 出 了 四 种 消 息 类 型 来 满 足 丰 富 的 业 务 场 景 。 普 通 消 息 : 普 通 消 息 提 供 极 致 弹 性 、 海 量 堆 积 能 力 , 内 置 重 试 与 死 信 队 列 来 满 足 业 务 对 失 败 重 试 的 需 求 , 同 时 具 备 高 吞 吐 、 高 可 用 、 低 延 迟 等 特 性 , 广 泛 应 用 于 应 用 集 成 、 异 步 解 耦 、 削 峰 填 谷 等 场 景 。 定 时 消 息 : 提 供 秒 级 定 时 精 度 , 4 0 天 超 长 定 时 , 主 要 面 向 分 布 式 定 时 调 度 、 任 务 超 时 处 理 等 场 景 , 目 前 正 在 开 源 中 。 顺 序 消 息 : 支 持 全 局 与 局 部 严 格 有 序 , 从 发 送 、 存 储 到 消 费 , 保 证 端 到 端 有 序 。 面 向 有 序 事 件 处 理 、 撮 合 交 易 、 数 据 实 时 增 量 同 步 等 场 景 。 事 务 消 息 : 分 布 式 、 高 性 能 、 高 可 用 的 最 终 一 致 性 事 务 解 决 方 案 , 广 泛 应 用 于 电 商 交 易 系 统 中 服 务 的 一 致 性 协 调 场 景 并 且 已 经 开 源 。 R o c k e t M Q 4 . 0 期 间 , 商 业 和 开 源 都 致 力 于 全 方 位 拓 展 消 息 接 入 能 力 , 使 R o c k e t M Q 能 够 非 常 轻 松 地 连 接 应 用 开 源 和 云 产 品 生 态 。 比 如 商 业 上 提 供 了 多 语 言 S D K , 开 源 也 有 相 应 的 S D K 能 够 覆 盖 J a v a 、 G o 、 P y t h o n 、 C + + 使 用 R o c k e t M Q 。 同 时 支 持 S p r i n g 生 态 , 能 够 通 过 S p r i n g C l o u d 的 方 式 使 用 R o c k e t M Q 。 商 业 上 提 供 了 一 组 非 常 简 单 易 用 的 H T T P A P I , 提 供 了 6 7 种 语 言 的 实 现 。 除 了 S D K 接 入 , R o c k e t M Q 也 在 积 极 拥 抱 社 区 标 准 , 在 云 产 品 侧 提 供 了 A M Q P 和 M Q T T 的 接 入 能 力 , 其 中 M Q T T 已 开 源 。 R o c k e t M Q 也 大 力 在 发 展 c o n n e c t o r 生 态 , 能 够 通 过 R o c k e t M Q c o n n e c t o r 接 入 很 多 数 据 源 , 包 括 R e d i s 、 M o n g o D B 、 H u d i 等 大 数 据 系 统 。 另 外 , 阿 里 云 构 建 的 事 件 总 线 E v e n t B r i d g e 也 已 开 源 , 通 过 该 产 品 能 够 将 阿 里 云 的 云 产 品 、 S a a S 应 用 、 自 建 数 据 平 台 的 数 据 引 入 R o c k e t M Q 。 R o c k e t M Q 4 . 0 版 本 做 了 大 量 尝 试 , 提 供 了 全 方 位 的 消 息 接 入 能 力 。 R o c k e t M Q 在 服 务 阿 里 集 团 用 户 和 商 业 化 历 程 中 , 沉 淀 了 大 量 领 先 的 业 务 消 息 处 理 与 服 务 能 力 。 比 如 消 息 订 阅 方 面 , R o c k e t M Q 支 持 集 群 分 布 式 消 费 能 力 , 也 支 持 广 播 消 费 。 在 消 息 处 理 方 面 支 持 基 于 T a g 和 S Q L 做 灵 活 过 滤 , 其 中 基 于 S Q L 过 滤 是 电 商 交 易 中 非 常 重 要 的 特 性 , 能 够 支 持 在 非 常 订 阅 比 的 情 况 下 实 现 较 低 的 投 递 比 。 全 球 消 息 路 由 能 力 具 备 性 能 高 、 实 时 性 强 的 特 点 。 在 云 时 代 , 数 据 中 心 天 然 分 布 在 各 个 地 域 , 各 个 地 域 之 间 还 有 V P C 网 络 隔 离 。 但 是 通 过 全 球 消 息 路 由 功 能 可 以 将 地 域 与 网 络 打 通 , 能 够 满 足 更 多 业 务 场 景 。 比 如 在 阿 里 内 部 基 于 该 能 力 实 现 了 异 地 多 活 、 异 地 容 灾 等 企 业 级 特 性 。 另 外 , 全 球 消 息 路 由 具 备 非 常 高 的 易 用 性 , 提 供 了 可 视 化 任 务 管 理 界 面 , 通 过 简 单 配 置 即 可 创 建 复 制 链 路 。 消 息 治 理 方 面 , R o c k e t M Q 提 供 了 访 问 控 制 、 命 名 空 间 、 实 例 限 流 、 消 息 回 放 、 重 试 消 息 、 死 信 消 息 、 堆 积 治 理 等 能 力 。 服 务 能 力 方 面 , R o c k e t M Q 经 历 了 非 常 多 沉 淀 , 它 在 为 交 易 链 路 服 务 了 1 2 年 , 参 加 了 1 0 年 双 1 1 , 这 也 保 证 了 R o c k e t M Q 能 够 在 阿 里 云 上 提 供 非 常 高 的 可 靠 性 。 双 1 1 消 息 收 发 T P S 峰 值 过 亿 , 日 消 息 收 发 总 量 超 过 3 万 亿 。 而 即 使 在 双 十 一 万 亿 级 数 据 洪 峰 下 , 消 息 也 能 做 到 9 9 . 9 9 6 % 毫 秒 级 响 应 能 力 , 消 息 发 布 平 均 响 应 时 间 不 超 过 3 毫 秒 , 最 大 不 超 过 2 0 毫 秒 , 真 正 实 现 了 低 延 迟 消 息 发 布 。 商 业 化 初 期 , 客 户 遇 到 最 大 难 题 是 在 分 布 式 环 境 下 如 何 完 整 地 追 踪 异 步 消 息 链 路 。 基 于 此 背 景 , 我 们 打 造 了 可 视 化 全 生 命 周 期 消 息 轨 迹 追 踪 系 统 , 能 够 提 供 丰 富 的 消 息 查 询 、 消 息 下 载 、 定 点 重 投 、 轨 迹 追 踪 能 力 , 通 过 可 观 测 系 统 帮 助 用 户 解 决 分 布 式 环 境 中 不 可 观 测 的 问 题 。 如 上 图 所 示 , 一 条 消 息 从 产 生 、 发 送 至 服 务 端 存 储 到 最 终 投 递 到 消 费 者 , 整 个 发 送 和 消 费 轨 迹 都 有 迹 可 循 , 包 括 投 递 给 哪 些 消 费 者 、 哪 些 消 费 者 在 什 么 地 方 成 功 消 费 或 者 消 费 失 败 、 何 时 进 行 重 投 , 真 正 帮 助 客 户 解 决 了 分 布 式 观 测 难 题 。 除 了 功 能 特 性 , R o c k e t M Q 在 稳 定 性 方 面 也 做 了 很 多 建 设 。 我 们 始 终 坚 持 , S L A 是 云 原 生 的 根 本 , 因 此 整 个 研 发 运 维 链 路 都 有 严 格 的 稳 定 性 保 障 措 施 : 架 构 开 发 : 每 个 方 案 设 计 都 会 面 向 失 败 设 计 , 代 码 开 发 阶 段 会 有 严 格 C o d e R e v i e w 阶 段 , 也 会 完 整 经 历 单 元 测 试 、 集 成 测 试 、 性 能 测 试 和 容 灾 测 试 流 程 。 变 更 管 理 : 有 着 非 常 严 格 的 变 更 制 度 , 要 做 到 每 个 变 更 可 灰 度 、 可 监 控 、 可 回 滚 、 可 降 级 。 稳 定 性 防 护 : 提 供 了 限 流 、 降 级 、 容 量 评 估 、 应 急 方 案 、 大 促 保 障 等 能 力 , 会 定 期 进 行 故 障 和 预 案 演 练 , 定 期 进 行 风 险 梳 理 。 体 系 化 巡 检 : 在 云 上 有 全 方 位 的 生 产 环 境 黑 盒 巡 检 。 基 于 用 户 视 角 , 会 对 全 地 域 所 有 功 能 做 全 功 能 扫 描 , 包 含 高 达 5 0 多 项 检 测 项 , 任 意 项 功 能 出 问 题 都 能 立 刻 被 监 测 到 。 在 白 盒 巡 检 方 面 , 会 对 J V M 运 行 时 指 标 、 内 核 系 统 、 集 群 指 标 进 行 巡 检 。 故 障 应 急 : 有 完 整 地 故 障 应 急 流 程 , 包 括 监 控 报 警 、 故 障 发 生 、 快 速 止 血 、 排 查 根 因 、 故 障 复 盘 。 R o c k e t M Q 5 . 0 云 原 生 架 构 升 级 之 路 云 原 生 时 代 , 云 上 用 户 对 云 产 品 服 务 化 程 度 、 弹 性 能 力 、 可 控 制 性 能 力 以 及 韧 性 都 有 了 更 高 的 要 求 。 在 此 背 景 之 下 , 我 们 对 R o c k e t M Q 进 行 了 云 原 生 架 构 升 级 , 这 也 是 R o c k e t M Q 5 . 0 的 诞 生 背 景 。 轻 量 级 S D K : 基 于 云 原 生 通 信 标 准 g R P C 开 发 了 一 组 轻 量 级 S D K , 能 够 与 当 前 富 客 户 端 优 势 互 补 。 无 状 态 消 息 网 关 : 在 核 心 数 据 链 路 推 出 了 无 状 态 消 息 网 关 。 通 过 搭 建 无 状 态 服 务 节 点 P r o x y , 再 通 过 L B 进 行 服 务 暴 露 , 将 存 储 节 点 数 据 分 离 来 独 立 负 责 核 心 消 息 存 储 和 高 可 用 。 P r o x y 与 S t o r e 节 点 分 离 部 署 , 独 立 弹 性 。 L e a d e r l e s s 高 可 用 架 构 : S t o r e 节 点 身 份 完 全 对 等 , 完 全 L e a d e r l e s s 化 , 去 Z K 和 H A 管 控 节 点 , 能 够 做 到 非 常 高 的 可 用 性 。 同 时 相 比 传 统 的 R a f t 一 致 性 协 议 , 该 L e a d e r l e s s 架 构 能 够 做 到 副 本 数 灵 活 选 择 , 同 步 异 步 自 动 升 降 级 , 实 现 秒 级 故 障 转 移 。 高 可 用 架 构 目 前 已 经 完 成 开 源 并 与 D l e d g e r 进 行 了 融 合 。 云 原 生 基 础 设 施 : 可 观 测 验 能 力 云 原 生 化 , O p e n T e l e m e t r y 标 准 化 。 整 体 架 构 走 向 K u b e r n e t e s 化 , 能 够 充 分 利 用 售 卖 区 的 资 源 弹 性 能 力 。 R o c k e t M Q 4 . 0 推 荐 的 接 入 方 式 主 要 是 富 客 户 端 。 富 客 户 端 提 供 了 诸 如 客 户 端 侧 负 载 均 衡 、 消 息 缓 存 、 故 障 转 移 等 一 系 列 企 业 级 特 性 。 但 在 云 原 生 时 代 , 轻 量 级 、 高 性 能 的 客 户 端 更 容 易 被 云 原 生 技 术 栈 所 集 成 。 因 此 , R o c k e t M Q 5 . 0 重 磅 推 出 了 全 新 多 语 言 轻 量 级 S D K , 具 有 以 下 优 势 : 全 新 极 简 A P I 设 计 : 不 可 变 A P I , 有 完 善 的 错 误 处 理 。 多 语 言 S D K 保 障 A P I 在 N a t i v e 层 面 对 齐 。 同 时 引 入 了 全 新 的 S i m p l e C o n s u m e r , 能 够 支 持 按 消 息 模 型 进 行 消 费 , 用 户 不 再 需 要 关 心 消 息 队 列 , 只 需 要 关 注 消 息 。 通 信 层 采 用 g R P C 协 议 : 拥 抱 云 原 生 通 信 标 准 , g R P C 能 够 使 服 务 更 易 被 集 成 。 多 语 言 S D K 通 信 代 码 也 可 以 通 过 g R P C 快 速 生 成 , 更 N a t i v e 。 轻 量 级 实 现 : 采 用 无 状 态 消 费 模 式 , 能 够 大 幅 降 低 客 户 端 的 实 现 复 杂 度 。 客 户 端 更 轻 量 , 采 用 的 应 用 也 更 容 易 被 S e r v e r l e s s 化 、 M e s h 化 。 云 原 生 可 观 测 性 : 客 户 端 实 现 了 O p e n T e l e m e t r y 标 准 , 能 够 支 持 以 O p e n T e l e m e t r y 形 式 导 出 M e t r i c s 与 T r a c i n g 。 R o c k e t M Q 5 . 0 的 另 一 个 重 大 升 级 是 引 入 了 全 新 的 无 状 态 消 费 模 型 。 该 消 费 模 型 完 全 构 建 在 原 先 的 队 列 模 型 之 上 。 队 列 模 型 是 与 存 储 模 型 一 致 的 消 费 模 型 , 消 费 者 完 全 按 照 队 列 做 负 载 均 衡 , 也 按 照 队 列 做 消 息 拉 取 , 非 常 适 合 批 量 高 速 拉 取 以 及 对 单 条 消 息 状 态 不 敏 感 的 场 景 , 比 如 流 计 算 等 。 R o c k e t M Q 5 . 0 推 出 了 P o P 机 制 , 巧 妙 地 在 队 列 模 型 之 上 构 建 了 消 息 模 型 , 实 现 了 鱼 与 熊 掌 兼 得 。 在 此 消 息 模 型 的 设 计 上 , 业 务 可 以 只 关 心 消 息 而 无 需 关 心 队 列 , 所 有 A P I 都 能 够 支 持 单 条 消 息 级 别 的 消 费 、 重 试 、 修 改 不 可 见 时 间 、 删 除 。 在 消 息 模 型 下 , 消 息 发 送 过 来 被 存 储 后 , 即 对 消 费 者 可 见 。 消 费 者 通 过 R e c e i v e M e s s a g e A P I 对 消 息 进 行 消 费 后 , 消 息 进 入 定 时 不 可 见 状 态 。 消 息 超 时 过 后 又 会 重 新 处 于 可 见 状 态 , 能 被 其 他 消 费 者 继 续 消 费 。 某 消 费 者 确 认 消 息 后 , 服 务 端 会 对 该 消 息 进 行 删 除 , 随 即 不 可 见 。 基 于 消 息 系 模 型 的 消 费 流 程 下 , A P I 完 全 面 向 消 息 而 不 是 面 向 队 列 。 而 当 P o P 机 制 遇 见 了 无 状 态 P r o x y , 除 了 存 储 层 , 其 他 节 点 都 是 无 状 态 的 ; 客 户 端 、 连 接 和 消 费 也 是 无 状 态 的 , 可 任 意 在 P r o x y 节 点 上 飘 移 , 真 正 做 到 轻 量 级 。 经 过 重 构 , R o c k e t M Q 5 . 0 的 可 观 测 性 也 走 向 了 云 原 生 标 准 。 M e t r i c s 侧 : 指 标 涵 盖 丰 富 : 设 计 了 更 丰 富 的 指 标 , 包 含 消 息 量 、 堆 积 量 、 各 个 阶 段 耗 时 等 指 标 , 每 个 指 标 从 实 例 、 T o p i c 、 消 费 G r o u p I D 多 维 度 做 聚 合 和 展 示 。 消 息 团 队 实 践 模 板 : 为 用 户 提 供 实 践 模 板 , 并 持 续 迭 代 更 新 。 P r o m e t h e u s + G r a f a n a : P r o m e t h e u s 标 准 数 据 格 式 , 利 用 G r a f a n a 展 示 。 除 了 模 板 , 用 户 也 可 以 自 定 义 展 示 大 盘 。 T r a c i n g 侧 : O p e n T e l e m e t r y T r a c i n g 标 准 : R o c k e t M Q T r a c i n g 标 准 已 经 合 并 到 O p e n T e l e m e t r y 开 源 标 准 , 提 供 了 规 范 和 丰 富 的 m e s s a g i n g t r a c i n g 场 景 定 义 。 消 息 领 域 定 制 化 展 示 : 按 照 消 息 维 度 重 新 组 织 抽 象 的 请 求 s p a n 数 据 , 展 示 一 对 多 的 消 费 , 多 次 消 费 信 息 直 观 且 方 便 理 解 。 可 衔 接 t r a c i n g 链 路 上 下 游 : 消 息 的 t r a c i n g 可 继 承 调 用 上 下 文 , 补 充 到 完 整 的 调 用 链 路 中 , 消 息 链 路 信 息 串 联 了 异 步 链 路 的 上 游 和 下 游 链 路 信 息 。 L o g g i n g 侧 : E r r o r C o d e 标 准 化 : 不 同 的 错 误 有 唯 一 的 E r r o r C o d e 。 E r r o r M e s s a g e 完 整 : 包 含 完 整 的 错 误 信 息 和 排 序 所 需 要 的 资 源 信 息 。 E r r o r L e v e l 标 准 化 : 细 化 了 各 种 不 同 错 误 信 息 的 日 志 级 别 , 用 户 可 根 据 E r r o r 、 W a r n 等 级 别 配 置 更 适 合 的 监 控 告 警 。 弹 性 方 面 , R o c k e t M Q 5 . 0 商 业 版 能 够 充 分 撬 动 云 的 计 算 、 存 储 和 网 络 的 池 化 资 源 。 比 如 在 计 算 方 面 , R o c k e t M Q 5 . 0 所 有 工 作 负 载 完 全 部 署 在 A C K 之 上 , 充 分 利 用 了 A C K 弹 性 能 力 , 撬 动 A C K 弹 性 资 源 。 主 要 依 赖 A C K 的 两 项 技 术 , 一 是 弹 性 资 源 池 , 另 一 个 是 H P A 支 持 计 算 能 力 快 速 弹 性 。 同 时 也 会 在 A C K 之 上 做 跨 可 用 区 部 署 以 提 供 高 可 用 保 障 。 网 络 层 面 , R o c k e t M Q 5 . 0 也 会 充 分 利 用 阿 里 云 网 络 设 施 , 为 用 户 提 供 更 便 捷 的 网 络 访 问 能 力 。 比 如 R o c k e t M Q 5 . 0 实 例 能 够 支 持 公 网 随 开 随 用 , 需 要 依 赖 公 网 做 测 试 的 时 候 即 开 即 用 , 测 试 完 立 即 关 闭 , 安 全 与 方 便 兼 具 。 同 时 支 持 多 种 私 网 类 型 的 网 络 形 态 , 包 括 S i n g l e T u n n e l 、 P r i v a t e L i n k , 另 外 也 基 于 C E N 构 建 了 全 球 互 通 设 计 网 络 。 存 储 方 面 , R o c k e t M Q 5 . 0 商 业 版 率 先 引 入 多 级 存 储 概 念 , 基 于 O S S 构 建 二 级 存 储 , 能 够 充 分 利 用 O S S 存 储 的 弹 性 能 力 , 存 储 计 费 也 转 向 了 按 量 付 费 。 而 用 户 能 够 在 R o c k e t M Q 之 上 自 定 义 消 息 存 储 时 长 , 比 如 将 消 息 从 3 天 有 效 时 长 延 长 至 3 0 天 , 能 够 真 正 将 消 息 变 为 数 据 资 产 。 同 时 利 用 二 级 存 储 能 力 , 将 冷 热 数 据 分 离 , 为 用 户 提 供 一 致 的 冷 读 S L A 。 R o c k e t M Q 5 . 0 商 业 版 发 布 预 告 R o c k e t M Q 4 . 0 历 经 了 五 年 发 展 , 开 源 和 商 业 版 本 共 同 迈 入 了 5 . 0 时 代 。 7 月 底 , 阿 里 云 消 息 队 列 将 会 基 于 开 源 版 发 布 全 新 的 5 . 0 商 业 化 版 本 。 注 : 截 止 发 稿 前 , R o c k e t M Q 5 . 0 已 经 在 阿 里 云 消 息 队 列 R o c k e t M Q 产 品 上 全 新 发 布 , 目 前 支 持 国 内 主 要 地 域 。 R o c k e t M Q 5 . 0 版 相 对 于 4 . 0 版 实 例 主 要 有 以 下 几 大 改 变 : 第 一 , 新 版 本 、 新 售 卖 , 更 便 宜 。 新 版 本 采 取 了 全 新 计 量 方 式 , 有 包 年 、 包 月 型 , 也 有 按 量 付 费 和 公 网 流 量 弹 性 计 费 。 也 有 更 全 的 售 卖 体 系 , 比 如 新 增 专 业 版 实 例 , 能 够 满 足 部 分 用 户 需 求 。 同 时 每 个 商 品 系 列 都 新 增 了 测 试 环 境 专 用 实 例 , 能 够 方 便 用 户 以 低 成 本 的 方 式 搭 建 自 己 的 开 发 环 境 。 第 二 , 更 强 弹 性 , 降 本 提 效 利 器 。 存 储 完 全 走 向 弹 性 , 能 够 通 过 S e r v e r l e s s 按 需 使 用 , 按 量 付 费 。 预 留 弹 性 , 实 例 基 础 规 格 支 持 实 时 升 降 配 , 用 户 可 以 很 方 便 地 在 流 量 到 来 之 前 做 弹 性 。 此 外 , 专 业 版 支 持 突 发 流 量 弹 性 , 能 够 解 决 线 上 稳 定 性 风 险 。 第 三 , 全 新 架 构 , 增 强 可 观 测 运 维 。 无 状 态 消 息 消 费 模 型 能 够 解 决 一 些 老 版 本 的 痛 点 。 同 时 在 可 观 测 上 全 面 采 取 了 云 原 生 接 入 栈 。 消 息 的 全 新 形 态 : 事 件 总 线 E v e n t B r i d g e 事 件 总 线 E v e n t B r i d g e 已 经 开 源 到 R o c k e t M Q 社 区 中 。 云 原 生 时 代 , 事 件 无 处 不 在 , 云 计 算 资 源 散 落 在 各 地 , 各 类 生 态 孤 岛 随 处 可 见 。 因 此 , 以 事 件 和 事 件 驱 动 的 方 式 来 集 成 这 一 切 是 大 势 所 趋 。 基 于 此 , 阿 里 云 推 出 了 全 新 事 件 型 产 品 E v e n t B r i d g e 。 该 产 品 构 建 在 R o c k e t M Q 之 上 , 是 R o c k e t M Q 之 上 的 一 个 事 件 驱 动 架 构 实 践 。 E v e n t B r i d g e 的 事 件 源 包 括 阿 里 云 服 务 的 管 控 事 件 比 如 资 源 变 更 事 件 、 审 计 事 件 、 配 置 变 更 事 件 , 阿 里 云 服 务 的 数 据 事 件 , 也 包 括 自 定 义 应 用 、 S a a S 应 用 、 自 建 数 据 平 台 、 其 他 云 厂 商 服 务 等 。 事 件 经 过 E v e n t B r i d g e 处 理 后 会 投 递 到 事 件 目 标 , 事 件 目 标 包 括 函 数 计 算 、 消 息 服 务 、 自 建 网 关 、 H T T P ( S ) 、 短 信 、 邮 箱 、 钉 钉 等 。 事 件 源 到 事 件 目 标 之 间 会 经 历 完 整 的 事 件 处 理 , 包 括 事 件 源 接 入 到 E B 后 , 可 以 对 事 件 进 行 过 滤 、 转 换 、 归 档 、 回 放 等 。 事 件 在 E v e n t B r i d g e 整 个 流 程 中 也 有 完 善 的 可 观 测 性 设 计 , 包 括 事 件 查 询 、 链 路 追 踪 。 事 件 的 接 入 方 式 非 常 丰 富 , 可 以 通 过 O p e n A P I 来 接 入 、 7 种 多 语 言 S D K 、 C l o u d E v e n t s S D K 、 W e b C o n s o l e 和 W e b h o o k 。 E v e n t B r i d g e 具 有 如 下 特 点 : 能 够 大 幅 度 减 少 用 户 开 发 成 本 , 用 户 无 需 额 外 开 发 , 通 过 创 建 E v e n t B r i d g e 源 、 事 件 目 标 、 事 件 规 则 等 资 源 即 可 实 现 事 件 架 构 。 用 户 可 以 编 写 事 件 规 则 , 对 事 件 做 过 滤 、 转 换 。 提 供 原 生 C l o u d E v e n t s 支 持 , 拥 抱 C N C F 社 区 , 能 够 无 缝 对 接 社 区 S D K 。 标 准 协 议 也 能 统 一 个 阿 里 云 事 件 规 范 。 事 件 S c h e m a 支 持 : 能 够 支 持 事 件 S c h e m a 自 动 探 测 和 校 验 , 支 持 S o u r c e 和 T a r g e t 的 S c h e m a 绑 定 。 全 球 事 件 任 意 互 通 : 组 建 了 全 球 事 件 任 意 互 通 网 络 , 组 件 了 跨 地 域 、 跨 账 户 的 事 件 网 络 , 能 够 支 持 跨 云 、 跨 数 据 中 心 的 事 件 路 由 。 E v e n t B r i d g e 在 云 上 生 态 已 经 初 具 规 模 , 已 经 集 成 了 2 5 5 + 云 产 品 事 件 源 和 1 0 0 0 + 事 件 类 型 。 E v e n t B r i d g e 率 先 对 消 息 生 态 做 了 融 合 。 阿 里 云 的 消 息 产 品 矩 阵 生 态 均 通 过 E v e n t B r i d g e 做 了 完 全 融 合 。 任 何 一 款 消 息 产 品 与 另 一 款 消 息 产 品 的 数 据 都 能 互 通 。 同 时 , 依 靠 E v e n t B r i d g e 的 全 球 事 件 网 络 , 能 够 为 所 有 消 息 产 品 赋 予 全 球 消 息 路 由 的 能 力 。 E v e n t B r i d g e 目 前 已 经 在 内 部 接 入 钉 钉 I S V 、 聚 石 塔 I S V , 外 部 也 有 5 0 + S a a S 系 统 可 以 通 过 W e b h o o k 的 方 式 接 入 。 另 外 , 海 量 事 件 源 可 以 触 达 1 0 多 种 事 件 目 标 , 已 经 对 接 了 全 系 云 产 品 A P I , 任 何 事 件 都 可 以 驱 动 全 量 云 产 品 A P I 。 作 者 介 绍 : 周 新 宇 A p a c h e M e m b e r , A p a c h e R o c k e t M Q P M C M e m b e r , 阿 里 云 消 息 队 列 R o c k e t M Q 研 发 负 责 人 。 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } ) ; } ) } ) : n u l l } 2 0 2 3 年 7 月 2 0 日 从 互 联 网 到 云 时 代 , A p a c h e R o c k e t M Q 是 如 何 演 进 的 ? 2 0 2 2 年 , R o c k e t M Q 5 . 0 的 正 式 版 发 布 。 相 对 于 4 . 0 版 本 而 言 , 架 构 走 向 云 原 生 化 , 并 且 覆 盖 了 更 多 业 务 场 景 。 一 、 消 息 队 列 演 进 史 操 作 系 统 、 数 据 库 、 中 间 件 是 基 础 软 件 的 三 驾 马 车 , 而 消 息 队 列 属 于 最 经 典 的 中 间 件 之 一 , 已 经 有 3 0 多 年 的 历 史 。 消 息 队 列 的 发 展 主 要 经 历 了 以 下 几 个 阶 段 : 第 一 阶 段 ( 1 9 8 0 2 0 0 0 年 ) : 8 0 年 代 诞 生 了 第 一 款 消 息 队 列 T h e I n f o r m a t i o n B u s , 第 一 次 提 出 发 布 订 阅 模 式 来 解 决 软 件 之 间 的 通 信 问 题 ; 9 0 年 代 是 国 际 商 业 软 件 巨 头 的 时 代 , I B M 、 O r a c l e 、 M i c r o s o f t 纷 纷 推 出 自 己 的 M Q , 其 中 最 具 代 表 性 的 为 I B M M Q , 价 格 昂 贵 , 面 向 高 端 企 业 , 主 要 是 大 型 金 融 、 电 信 等 企 业 。 该 类 商 业 M Q 一 般 采 用 高 端 硬 件 , 软 硬 件 一 体 机 交 付 , M Q 本 身 的 软 件 架 构 为 单 机 架 构 。 第 二 阶 段 ( 2 0 0 0 ~ 2 0 0 7 年 ) : 进 入 0 0 年 代 后 , 初 代 开 源 消 息 队 列 崛 起 , 诞 生 了 J M S 、 A M Q P 两 大 标 准 , 与 之 对 应 的 两 个 实 现 分 别 为 A c t i v e M Q 、 R a b b i t M Q , 他 们 引 领 了 初 期 的 开 源 消 息 队 列 技 术 。 开 源 极 大 促 进 了 消 息 队 列 的 流 行 , 降 低 了 使 用 门 槛 , 技 术 普 惠 化 , 逐 渐 成 为 企 业 级 架 构 的 标 配 。 相 比 于 今 天 而 言 , 这 类 M Q 主 要 面 向 传 统 企 业 级 应 用 和 小 流 量 场 景 , 横 向 扩 展 能 力 较 弱 。 第 三 阶 段 ( 2 0 0 7 ~ 2 0 1 7 年 ) : P C 互 联 网 、 移 动 互 联 网 爆 发 式 发 展 。 由 于 传 统 的 消 息 队 列 无 法 承 受 亿 级 用 户 的 访 问 流 量 与 海 量 数 据 传 输 , 诞 生 了 互 联 网 消 息 中 间 件 , 核 心 能 力 是 全 面 采 用 分 布 式 架 构 , 具 备 很 强 的 横 向 扩 展 能 力 , 开 源 典 型 代 表 有 K a f k a 、 R o c k e t M Q , 闭 源 的 有 淘 宝 N o t i f y 。 K a f k a 的 诞 生 还 将 消 息 中 间 件 从 消 息 领 域 延 伸 到 了 流 领 域 , 从 分 布 式 应 用 的 异 步 解 耦 场 景 延 伸 到 大 数 据 领 域 的 流 存 储 与 流 计 算 场 景 。 第 四 阶 段 ( 2 0 1 4 ~ 至 今 ) : 云 计 算 、 I o T 、 大 数 据 引 领 了 新 的 浪 潮 。 二 、 互 联 网 时 代 的 R o c k e t M Q 阿 里 的 电 商 系 统 最 初 是 个 庞 大 的 单 体 巨 石 应 用 , 在 研 发 效 率 、 稳 定 性 方 面 都 无 法 满 足 淘 宝 和 天 猫 飞 速 的 发 展 。 为 了 解 决 问 题 , 2 0 0 8 年 , 淘 宝 与 天 猫 发 起 了 一 次 最 大 规 模 的 架 构 升 级 , 启 动 了 “ 五 彩 石 ” 项 目 , 将 单 体 应 用 拆 分 为 分 布 式 应 用 , 同 时 抽 象 淘 宝 、 天 猫 的 共 同 底 座 — — 业 务 中 台 , 包 括 交 易 中 心 、 商 品 中 心 、 买 家 中 心 等 。 在 业 务 中 台 之 下 , 同 时 诞 生 了 阿 里 中 间 件 ( 初 期 三 大 件 包 括 消 息 、 R P C 、 分 布 式 数 据 层 ) , R o c k e t M Q 是 其 中 之 一 。 虽 然 在 当 时 业 界 已 经 存 在 不 少 商 业 或 开 源 的 消 息 队 列 , 比 如 I B M M Q 、 A c t i v e M Q 、 R a b b i t M Q , 但 无 一 例 外 , 它 们 都 诞 生 于 传 统 企 业 级 应 用 的 场 景 , 无 法 承 受 互 联 网 对 于 高 并 发 、 无 限 扩 展 的 苛 刻 要 求 。 以 R a b b i t M Q 为 例 , R a b b i t M Q 的 队 列 流 量 与 存 储 负 载 都 为 单 机 , 无 法 满 足 业 务 横 向 扩 展 的 需 求 。 当 时 另 一 款 具 备 无 限 横 向 扩 展 能 力 的 消 息 队 列 是 K a f k a , 但 其 主 要 用 于 日 志 类 场 景 , 未 经 过 大 规 模 核 心 业 务 稳 定 性 验 证 , 而 且 偏 向 于 简 单 的 l o g 型 消 息 队 列 , 无 法 满 足 电 商 对 于 复 杂 消 息 功 能 特 性 的 诉 求 , 比 如 消 息 过 滤 、 延 迟 消 息 等 。 另 一 方 面 , 传 统 的 消 息 队 列 无 法 解 决 电 商 业 务 对 于 分 布 式 一 致 性 的 要 求 。 通 过 消 息 队 列 实 现 应 用 异 步 解 耦 后 , 电 商 业 务 还 需 要 保 障 不 同 上 下 游 应 用 对 于 订 单 状 态 要 达 成 最 终 一 致 , 否 则 会 产 生 大 量 脏 数 据 , 造 成 业 务 错 误 。 大 规 模 的 电 商 系 统 , 既 要 高 性 能 又 要 一 致 性 , 传 统 的 分 布 式 事 务 技 术 束 手 无 策 。 比 如 I B M M Q 虽 然 可 以 使 用 X A 事 务 来 满 足 分 布 式 一 致 性 的 功 能 诉 求 , 但 是 X A 带 来 的 延 迟 与 成 本 , 对 于 海 量 的 互 联 网 流 量 难 以 承 受 。 为 了 解 决 电 商 业 务 对 于 消 息 队 列 的 高 性 能 、 一 致 性 、 无 限 扩 展 等 需 求 , 自 研 消 息 队 列 成 为 了 当 时 阿 里 唯 一 的 出 路 , 最 终 互 联 网 消 息 队 列 R o c k e t M Q 应 运 而 生 。 为 了 支 持 超 大 规 模 的 复 杂 电 商 业 务 , R o c k e t M Q 面 向 四 个 方 面 进 行 了 重 点 建 设 , 形 成 了 四 大 优 势 能 力 。 ① 支 撑 超 大 规 模 复 杂 业 务 的 能 力 , 具 备 丰 富 的 消 息 特 性 。 每 一 个 大 型 互 联 网 公 司 都 会 有 主 营 业 务 ( 比 如 阿 里 是 交 易 、 蚂 蚁 是 支 付 、 饿 了 么 是 外 卖 ) , 以 主 营 业 务 为 中 心 扩 展 业 务 能 力 , 阿 里 电 商 是 围 绕 交 易 事 件 建 设 的 电 商 操 作 系 统 , 每 笔 交 易 事 件 都 会 触 发 不 同 的 业 务 , 不 同 细 分 业 务 会 关 注 不 同 类 型 的 交 易 事 件 , 比 如 垂 直 市 场 只 关 注 某 个 类 目 的 交 易 事 件 、 天 猫 超 市 只 关 注 某 个 卖 家 的 交 易 事 件 、 购 物 车 只 关 注 下 单 成 功 的 交 易 事 件 等 。 R o c k e t M Q 的 S Q L 订 阅 提 供 灵 活 的 消 息 过 滤 能 力 , 能 够 满 足 下 游 消 费 者 按 照 不 同 的 业 务 维 度 进 行 消 息 过 滤 的 诉 求 。 在 大 型 互 联 网 业 务 中 , 还 会 有 各 种 定 时 事 件 触 发 场 景 , 最 典 型 的 是 交 易 超 时 关 闭 机 制 , 阿 里 交 易 或 者 1 2 3 0 6 订 票 都 有 类 似 的 机 制 。 R o c k e t M Q 的 定 时 消 息 能 够 很 方 便 的 满 足 这 类 诉 求 。 ② 一 致 性 。 无 论 是 阿 里 交 易 还 是 蚂 蚁 支 付 , 都 天 然 对 数 据 一 致 性 有 着 极 高 要 求 , R o c k e t M Q 在 一 致 性 方 面 也 打 造 了 多 个 关 键 特 性 。 最 具 代 表 性 的 是 分 布 式 事 务 消 息 , R o c k e t M Q 是 第 一 个 实 现 该 种 特 性 的 消 息 队 列 , 能 够 保 障 交 易 的 上 下 游 对 于 订 单 状 态 达 到 最 终 一 致 。 该 方 案 也 成 为 异 步 消 息 一 致 性 方 案 的 事 实 标 准 , 被 多 个 互 联 网 公 司 所 采 纳 , 甚 至 也 有 公 司 将 移 植 到 定 制 版 的 K a f k a 种 。 除 了 分 布 式 一 致 性 之 外 , R o c k e t M Q 还 提 供 了 顺 序 消 息 的 特 性 , 满 足 顺 序 一 致 性 的 需 求 。 ③ 稳 定 性 。 稳 定 性 是 交 易 与 金 融 场 景 的 基 石 特 性 , 也 是 R o c k e t M Q 的 根 本 。 R o c k e t M Q 除 了 具 备 核 心 服 务 的 H A 之 外 , 还 具 备 了 全 局 高 可 用 能 力 , 在 阿 里 内 部 支 持 同 城 多 活 、 异 地 多 活 、 中 心 容 灾 等 高 阶 H A 能 力 。 同 时 , 稳 定 性 也 不 局 限 于 数 据 与 服 务 的 高 可 用 , R o c k e t M Q 从 产 品 层 面 对 稳 定 性 进 行 了 全 方 位 的 建 设 , 如 消 息 轨 迹 、 消 息 回 溯 、 消 息 死 信 机 制 。 ④ 高 性 能 。 在 双 十 一 的 极 限 流 量 下 , R o c k e t M Q 写 消 息 延 迟 4 个 9 在 1 m s 内 , 1 0 0 % 在 1 0 0 m s 内 。 R o c k e t M Q 采 用 s h a r e d n o t h i n g 分 布 式 架 构 , 在 吞 吐 量 方 面 也 具 备 无 限 扩 展 的 能 力 , 已 经 连 续 1 0 年 支 持 了 双 十 一 万 亿 级 消 息 洪 峰 , 为 百 万 级 的 应 用 实 例 提 供 低 延 迟 消 息 服 务 。 互 联 网 的 故 事 还 在 进 行 , 云 计 算 规 模 化 落 地 的 时 代 悄 然 而 来 。 三 、 云 计 算 时 代 的 R o c k e t M Q 5 . 0 2 0 1 5 年 , R o c k e t M Q 的 首 个 云 消 息 服 务 在 阿 里 云 上 线 , 开 启 了 大 规 模 的 云 计 算 实 践 的 序 幕 。 同 时 R o c k e t M Q 也 是 业 界 第 一 个 提 供 公 有 云 服 务 的 开 源 消 息 队 列 。 在 大 规 模 的 云 计 算 业 务 场 景 下 , R o c k e t M Q 面 临 着 全 新 的 挑 战 与 机 遇 。 多 样 性 : 它 不 再 仅 服 务 于 某 一 家 公 司 的 内 部 业 务 , 不 再 局 限 于 互 联 网 或 金 融 企 业 , 需 要 实 现 全 行 业 、 全 场 景 的 覆 盖 。 标 准 化 : 对 于 服 务 企 业 内 部 的 自 研 消 息 队 列 而 言 , 无 需 考 虑 协 议 或 A P I 的 标 准 化 。 但 是 对 于 云 消 息 服 务 而 言 , 因 为 服 务 对 象 是 外 部 企 业 客 户 , 据 信 通 院 统 计 , 8 0 % 以 上 的 企 业 客 户 已 经 采 纳 开 源 技 术 和 标 准 技 术 。 因 此 , 作 为 一 款 云 消 息 服 务 , 需 要 提 供 对 业 界 的 事 实 标 准 协 议 、 接 口 、 S D K 的 兼 容 , 才 能 保 证 客 户 平 滑 上 云 , 同 时 打 消 客 户 技 术 绑 定 的 担 忧 。 云 原 生 : 云 原 生 理 念 深 入 人 心 , 消 息 队 列 要 更 好 地 帮 助 客 户 实 现 云 原 生 应 用 架 构 , 为 业 务 降 本 提 效 。 新 趋 势 : 各 种 新 技 术 的 兴 起 , 包 括 I o T 、 5 G 、 边 缘 计 算 、 事 件 驱 动 , 还 有 事 件 流 技 术 。 面 向 技 术 的 新 趋 势 与 多 样 化 的 业 务 需 求 , R o c k e t M Q 进 行 了 自 我 进 化 , 演 进 到 5 . 0 版 本 。 为 了 充 分 释 放 云 的 技 术 红 利 , R o c k e t M Q 5 . 0 在 技 术 架 构 上 进 行 了 云 原 生 的 演 进 。 从 客 户 端 到 服 务 端 都 进 行 了 全 方 位 的 改 造 , 更 高 弹 性 、 可 用 性 、 更 低 成 本 。 客 户 端 采 用 轻 量 S D K 设 计 理 念 , 将 原 来 富 客 户 端 的 逻 辑 下 沉 到 B r o k e r , 满 足 现 代 化 应 用 轻 量 化 、 S e r v e r l e s s 的 趋 势 。 B r o k e r 彻 底 进 行 弹 性 架 构 改 造 , 分 离 R o c k e t M Q P r o x y 与 S t o r e 层 , 其 中 P r o x y 是 完 全 无 状 态 的 计 算 节 点 , 专 注 多 协 议 、 多 领 域 场 景 覆 盖 , 可 以 面 向 不 同 工 作 负 载 独 立 弹 性 , 如 物 联 网 、 微 服 务 、 大 数 据 不 同 场 景 有 不 同 的 资 源 诉 求 。 S t o r e 层 则 专 注 消 息 的 高 可 用 存 储 , 包 括 副 本 复 制 、 主 备 切 换 与 云 存 储 集 成 。 同 时 对 R o c k e t M Q 的 T o p i c 资 源 进 行 三 层 解 耦 , 面 向 消 息 的 T o p i c 、 面 向 流 的 T o p i c 逻 辑 分 片 、 面 向 底 层 存 储 的 T o p i c 物 理 分 片 , 每 一 层 都 可 以 独 立 弹 性 。 在 存 储 层 引 入 了 L e a d e r l e s s 的 高 可 用 架 构 , S t o r e 节 点 身 份 对 等 , L e a d e r l e s s 化 , 0 外 部 依 赖 。 多 副 本 策 略 可 定 制 , 可 用 性 + 可 靠 性 + 成 本 灵 活 组 合 , 面 向 多 可 用 区 、 多 r e g i o n 组 建 G e o 高 可 用 能 力 。 为 了 满 足 云 时 代 多 样 化 的 用 户 需 求 , R o c k e t M Q 5 . 0 从 原 来 的 互 联 网 业 务 消 息 中 间 件 扩 展 到 消 息 、 事 件 、 流 超 融 合 处 理 平 台 , 解 锁 更 全 面 的 能 力 。 在 消 息 领 域 , 全 面 拥 抱 云 原 生 技 术 , 更 好 的 弹 性 架 构 与 高 可 用 能 力 。 在 事 件 领 域 , 支 持 C l o u d E v e n t 规 范 , 以 事 件 为 中 心 的 产 品 新 界 面 , 助 力 客 户 建 设 跨 业 务 、 跨 组 织 的 数 字 化 商 业 生 态 。 在 流 领 域 , 流 存 储 增 强 批 量 特 性 , 大 幅 度 提 高 数 据 吞 吐 量 ; 新 增 逻 辑 队 列 能 力 , 解 耦 逻 辑 资 源 与 物 理 资 源 , 在 流 场 景 也 具 备 无 缝 伸 缩 能 力 ; 新 增 流 数 据 库 R S Q L D B , 提 供 实 时 事 件 流 处 理 、 流 分 析 能 力 。 R o c k e t M Q 基 于 端 云 一 体 化 架 构 实 现 了 完 整 的 物 联 网 消 息 队 列 的 能 力 , 从 原 来 的 连 接 应 用 扩 展 到 连 接 物 联 网 设 备 。 同 时 R o c k e t M Q 5 . 0 也 继 续 保 持 极 简 架 构 的 原 则 , 能 够 以 最 低 的 资 源 消 耗 、 运 维 成 本 搭 建 服 务 , 适 合 边 缘 计 算 。 除 了 的 产 品 核 心 能 力 之 外 , R o c k e t M Q 5 . 0 积 极 建 设 开 源 生 态 。 一 方 面 是 应 用 架 构 生 态 的 建 设 , 既 有 经 典 的 开 源 项 目 、 规 范 的 集 成 , 比 如 J M S 、 A M Q P 等 , 也 有 云 原 生 技 术 生 态 的 集 成 , 比 如 C l o u d E v e n t s 、 D a p r 、 E n v o y 。 同 时 R o c k e t M Q 也 会 进 一 步 发 力 数 据 架 构 生 态 , 全 链 路 集 成 大 数 据 的 摄 入 、 数 据 存 储 、 数 据 处 理 、 数 据 分 析 组 件 , 从 离 线 大 数 据 到 实 时 大 数 据 。 【 活 动 】 一 键 体 验 R o c k e t M Q 六 大 生 产 环 境 免 费 试 用 + 3 0 秒 一 键 体 验 , 低 门 槛 、 快 速 、 高 效 、 易 操 作 , 带 你 了 解 “ 历 经 万 亿 级 数 据 洪 峰 考 验 ” 的 云 消 息 队 列 R o c k e t M Q ! 点 击 阅 读 原 文 , 立 即 参 与 活 动 ! 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } 2 0 2 3 年 4 月 1 1 日 R o c k e t M Q 多 级 存 储 设 计 与 实 现 设 计 总 览 R o c k e t M Q 多 级 存 储 旨 在 不 影 响 热 数 据 读 写 的 前 提 下 将 数 据 卸 载 到 其 他 存 储 介 质 中 , 适 用 于 两 种 场 景 : 1 . 冷 热 数 据 分 离 : R o c k e t M Q 新 近 产 生 的 消 息 会 缓 存 在 p a g e c a c h e 中 , 我 们 称 之 为 热 数 据 ; 当 缓 存 超 过 了 内 存 的 容 量 就 会 有 热 数 据 被 换 出 成 为 冷 数 据 。 如 果 有 少 许 消 费 者 尝 试 消 费 冷 数 据 就 会 从 硬 盘 中 重 新 加 载 冷 数 据 到 p a g e c a c h e , 这 会 导 致 读 写 I O 竞 争 并 挤 压 p a g e c a c h e 的 空 间 。 而 将 冷 数 据 的 读 取 链 路 切 换 为 多 级 存 储 就 可 以 避 免 这 个 问 题 ; 2 . 延 长 消 息 保 留 时 间 : 将 消 息 卸 载 到 更 大 更 便 宜 的 存 储 介 质 中 , 可 以 用 较 低 的 成 本 实 现 更 长 的 消 息 保 存 时 间 。 同 时 多 级 存 储 支 持 为 t o p i c 指 定 不 同 的 消 息 保 留 时 间 , 可 以 根 据 业 务 需 要 灵 活 配 置 消 息 T T L 。 R o c k e t M Q 多 级 存 储 对 比 K a f k a 和 P u l s a r 的 实 现 最 大 的 不 同 是 我 们 使 用 准 实 时 的 方 式 上 传 消 息 , 而 不 是 等 一 个 C o m m i t L o g 写 满 后 再 上 传 , 主 要 基 于 以 下 几 点 考 虑 : 1 . 均 摊 成 本 : R o c k e t M Q 多 级 存 储 需 要 将 全 局 C o m m i t L o g 转 换 为 t o p i c 维 度 并 重 新 构 建 消 息 索 引 , 一 次 性 处 理 整 个 C o m m i t L o g 文 件 会 带 来 性 能 毛 刺 ; 2 . 对 小 规 格 实 例 更 友 好 : 小 规 格 实 例 往 往 配 置 较 小 的 内 存 , 这 意 味 着 热 数 据 会 更 快 换 出 成 为 冷 数 据 , 等 待 C o m m i t L o g 写 满 再 上 传 本 身 就 有 冷 读 风 险 。 采 取 准 实 时 上 传 的 方 式 既 能 规 避 消 息 上 传 时 的 冷 读 风 险 , 又 能 尽 快 使 得 冷 数 据 可 以 从 多 级 存 储 读 取 。 Q u i c k S t a r t 多 级 存 储 在 设 计 上 希 望 降 低 用 户 心 智 负 担 : 用 户 无 需 变 更 客 户 端 就 能 实 现 无 感 切 换 冷 热 数 据 读 写 链 路 , 通 过 简 单 的 修 改 服 务 端 配 置 即 可 具 备 多 级 存 储 的 能 力 , 只 需 以 下 两 步 : 1 . 修 改 B r o k e r 配 置 , 指 定 使 用 o r g . a p a c h e . r o c k e t m q . t i e r e d s t o r e . T i e r e d M e s s a g e S t o r e 作 为 m e s s a g e S t o r e P l u g I n 2 . 配 置 你 想 使 用 的 储 存 介 质 , 以 卸 载 消 息 到 其 他 硬 盘 为 例 : 配 置 t i e r e d B a c k e n d S e r v i c e P r o v i d e r 为 o r g . a p a c h e . r o c k e t m q . t i e r e d s t o r e . p r o v i d e r . p o s i x . P o s i x F i l e S e g m e n t , 同 时 指 定 新 储 存 的 文 件 路 径 : t i e r e d S t o r e F i l e p a t h 可 选 项 : 支 持 修 改 t i e r e d M e t a d a t a S e r v i c e P r o v i d e r 切 换 元 数 据 存 储 的 实 现 , 默 认 是 基 于 j s o n 的 文 件 存 储 更 多 使 用 说 明 和 配 置 项 可 以 在 G i t H u b 上 查 看 多 级 存 储 的 技 术 架 构 a r c h i t e c t u r e 接 入 层 : T i e r e d M e s s a g e S t o r e / T i e r e d D i s p a t c h e r / T i e r e d M e s s a g e F e t c h e r 接 入 层 实 现 M e s s a g e S t o r e 中 的 部 分 读 写 接 口 , 并 为 他 们 增 加 了 异 步 语 意 。 T i e r e d D i s p a t c h e r 和 T i e r e d M e s s a g e F e t c h e r 分 别 实 现 了 多 级 存 储 的 上 传 / 下 载 逻 辑 , 相 比 于 底 层 接 口 这 里 做 了 较 多 的 性 能 优 化 : 包 括 使 用 独 立 的 线 程 池 , 避 免 慢 I O 阻 塞 访 问 热 数 据 ; 使 用 预 读 缓 存 优 化 性 能 等 。 容 器 层 : T i e r e d C o m m i t L o g / T i e r e d C o n s u m e Q u e u e / T i e r e d I n d e x F i l e / T i e r e d F i l e Q u e u e 容 器 层 实 现 了 和 D e f a u l t M e s s a g e S t o r e 类 似 的 逻 辑 文 件 抽 象 , 同 样 将 文 件 划 分 为 C o m m i t L o g 、 C o n s u m e Q u e u e 、 I n d e x F i l e , 并 且 每 种 逻 辑 文 件 类 型 都 通 过 F i l e Q u e u e 持 有 底 层 物 理 文 件 的 引 用 。 有 所 不 同 的 是 多 级 存 储 的 C o m m i t L o g 改 为 q u e u e 维 度 。 驱 动 层 : T i e r e d F i l e S e g m e n t 驱 动 层 负 责 维 护 逻 辑 文 件 到 物 理 文 件 的 映 射 , 通 过 实 现 T i e r e d S t o r e P r o v i d e r 对 接 底 层 文 件 系 统 读 写 接 口 ( P o s i x 、 S 3 、 O S S 、 M i n I O 等 ) 。 目 前 提 供 了 P o s i x F i l e S e g m e n t 的 实 现 , 可 以 将 数 据 转 移 到 其 他 硬 盘 或 通 过 f u s e 挂 载 的 对 象 存 储 上 。 消 息 上 传 R o c k e t M Q 多 级 存 储 的 消 息 上 传 是 由 d i s p a t c h 机 制 触 发 的 : 初 始 化 多 级 存 储 时 会 将 T i e r e d D i s p a t c h e r 注 册 为 C o m m i t L o g 的 d i s p a c h e r 。 这 样 每 当 有 消 息 发 送 到 B r o k e r 会 调 用 T i e r e d D i s p a t c h e r 进 行 消 息 分 发 , T i e r e d D i s p a t c h e r 将 该 消 息 写 入 到 u p l o a d b u f f e r 后 立 即 返 回 成 功 。 整 个 d i s p a t c h 流 程 中 不 会 有 任 何 阻 塞 逻 辑 , 确 保 不 会 影 响 本 地 C o n s u m e Q u e u e 的 构 建 。 T i e r e d D i s p a t c h e r T i e r e d D i s p a t c h e r 写 入 u p l o a d b u f f e r 的 内 容 仅 为 消 息 的 引 用 , 不 会 将 消 息 的 b o d y 读 入 内 存 。 因 为 多 级 储 存 以 q u e u e 维 度 构 建 C o m m i t L o g , 此 时 需 要 重 新 生 成 c o m m i t L o g o f f s e t 字 段 u p l o a d b u f f e r 触 发 u p l o a d b u f f e r 上 传 时 读 取 到 每 条 消 息 的 c o m m i t L o g o f f s e t 字 段 时 采 用 拼 接 的 方 式 将 新 的 o f f s e t 嵌 入 到 原 消 息 中 上 传 进 度 控 制 每 个 队 列 都 会 有 两 个 关 键 位 点 控 制 上 传 进 度 : 1 . d i s p a t c h o f f s e t : 已 经 写 入 缓 存 但 是 未 上 传 的 消 息 位 点 2 . c o m m i t o f f s e t : 已 上 传 的 消 息 位 点 u p l o a d p r o g r e s s 类 比 消 费 者 , d i s p a t c h o f f s e t 相 当 于 拉 取 消 息 的 位 点 , c o m m i t o f f s e t 相 当 于 确 认 消 费 的 位 点 。 c o m m i t o f f s e t 到 d i s p a t c h o f f s e t 之 间 的 部 分 相 当 于 已 拉 取 未 消 费 的 消 息 消 息 读 取 T i e r e d M e s s a g e S t o r e 实 现 了 M e s s a g e S t o r e 中 的 消 息 读 取 相 关 接 口 , 通 过 请 求 中 的 逻 辑 位 点 ( q u e u e o f f s e t ) 判 断 是 否 从 多 级 存 储 中 读 取 消 息 , 根 据 配 置 ( t i e r e d S t o r a g e L e v e l ) 有 四 种 策 略 : D I S A B L E : 禁 止 从 多 级 存 储 中 读 取 消 息 ; N O T _ I N _ D I S K : 不 在 D e f a u l t M e s s a g e S t o r e 中 的 消 息 从 多 级 存 储 中 读 取 ; N O T _ I N _ M E M : 不 在 p a g e c a c h e 中 的 消 息 即 冷 数 据 从 多 级 存 储 读 取 ; F O R C E : 强 制 所 有 消 息 从 多 级 存 储 中 读 取 , 目 前 仅 供 测 试 使 用 。 $ 需 要 从 多 级 存 储 中 读 取 的 消 息 会 交 由 T i e r e d M e s s a g e F e t c h e r 处 理 : 首 先 校 验 参 数 是 否 合 法 , 然 后 按 照 逻 辑 位 点 ( q u e u e o f f s e t ) 发 起 拉 取 请 求 。 T i e r e d C o n s u m e Q u e u e / T i e r e d C o m m i t L o g 将 逻 辑 位 点 换 算 为 对 应 文 件 的 物 理 位 点 从 T i e r e d F i l e S e g m e n t 读 取 消 息 。 $ T i e r e d F i l e S e g m e n t 维 护 每 个 储 存 在 文 件 系 统 中 的 物 理 文 件 位 点 , 并 通 过 为 不 同 存 储 介 质 实 现 的 接 口 从 中 读 取 所 需 的 数 据 。 $ 预 读 缓 存 T i e r e d M e s s a g e F e t c h e r 读 取 消 息 时 会 预 读 一 部 分 消 息 供 下 次 使 用 , 这 些 消 息 暂 存 在 预 读 缓 存 中 $ 预 读 缓 存 的 设 计 参 考 了 T C P T a h o e 拥 塞 控 制 算 法 , 每 次 预 读 的 消 息 量 类 似 拥 塞 窗 口 采 用 加 法 增 、 乘 法 减 的 机 制 控 制 : 加 法 增 : 从 最 小 窗 口 开 始 , 每 次 增 加 等 同 于 客 户 端 b a t c h S i z e 的 消 息 量 。 乘 法 减 : 当 缓 存 的 消 息 超 过 了 缓 存 过 期 时 间 仍 未 被 全 部 拉 取 , 在 清 理 缓 存 的 同 时 会 将 下 次 预 读 消 息 量 减 半 。 预 读 缓 存 支 持 在 读 取 消 息 量 较 大 时 分 片 并 发 请 求 , 以 取 得 更 大 带 宽 和 更 小 的 延 迟 。 某 个 t o p i c 消 息 的 预 读 缓 存 由 消 费 这 个 t o p i c 的 所 有 g r o u p 共 享 , 缓 存 失 效 策 略 为 : 1 . 所 有 订 阅 这 个 t o p i c 的 g r o u p 都 访 问 了 缓 存 2 . 到 达 缓 存 过 期 时 间 故 障 恢 复 上 文 中 我 们 介 绍 上 传 进 度 由 c o m m i t o f f s e t 和 d i s p a t c h o f f s e t 控 制 。 多 级 存 储 会 为 每 个 t o p i c 、 q u e u e 、 f i l e S e g m e n t 创 建 元 数 据 并 持 久 化 这 两 种 位 点 。 当 B r o k e r 重 启 后 会 从 元 数 据 中 恢 复 , 继 续 从 c o m m i t o f f s e t 开 始 上 传 消 息 , 之 前 缓 存 的 消 息 会 重 新 上 传 并 不 会 丢 失 。 开 发 计 划 面 向 云 原 生 的 存 储 系 统 要 最 大 化 利 用 云 上 存 储 的 价 值 , 而 对 象 存 储 正 是 云 计 算 红 利 的 体 现 。 R o c k e t M Q 多 级 存 储 希 望 一 方 面 利 用 对 象 存 储 低 成 本 的 优 势 延 长 消 息 存 储 时 间 、 拓 展 数 据 的 价 值 ; 另 一 方 面 利 用 其 共 享 存 储 的 特 性 在 多 副 本 架 构 中 兼 得 成 本 和 数 据 可 靠 性 , 以 及 未 来 向 S e r v e r l e s s 架 构 演 进 。 t a g 过 滤 多 级 存 储 拉 取 消 息 时 没 有 计 算 消 息 的 t a g 是 否 匹 配 , t a g 过 滤 交 给 客 户 端 处 理 。 这 样 会 带 来 额 外 的 网 络 开 销 , 计 划 后 续 在 服 务 端 增 加 t a g 过 滤 能 力 。 广 播 消 费 以 及 多 个 消 费 进 度 不 同 的 消 费 者 预 读 缓 存 失 效 需 要 所 有 订 阅 这 个 t o p i c 的 g r o u p 都 访 问 了 缓 存 , 这 在 多 个 g r o u p 消 费 进 度 不 一 致 的 情 况 下 很 难 触 发 , 导 致 无 用 的 消 息 在 缓 存 中 堆 积 。 需 要 计 算 出 每 个 g r o u p 的 消 费 q p s 来 估 算 某 个 g r o u p 能 否 在 缓 存 失 效 前 用 上 缓 存 的 消 息 。 如 果 缓 存 的 消 息 预 期 在 失 效 前 都 不 会 被 再 次 访 问 , 那 么 它 应 该 被 立 即 过 期 。 相 应 的 对 于 广 播 消 费 , 消 息 的 过 期 策 略 应 被 优 化 为 所 有 C l i e n t 都 读 取 这 条 消 息 后 才 失 效 。 和 高 可 用 架 构 的 融 合 目 前 主 要 面 临 以 下 三 个 问 题 : 1 . 元 数 据 同 步 : 如 何 可 靠 的 在 多 个 节 点 间 同 步 元 数 据 , s l a v e 晋 升 时 如 何 校 准 和 补 全 缺 失 的 元 数 据 ; 2 . 禁 止 上 传 超 过 c o n f i r m o f f s e t 的 消 息 : 为 了 避 免 消 息 回 退 , 上 传 的 最 大 o f f s e t 不 能 超 过 c o n f i r m o f f s e t ; 3 . s l a v e 晋 升 时 快 速 启 动 多 级 存 储 : 只 有 m a s t e r 节 点 具 有 写 权 限 , 在 s l a v e 节 点 晋 升 后 需 要 快 速 拉 起 多 级 存 储 断 点 续 传 。 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } 2 0 2 1 年 6 月 2 8 日 解 读 R o c k e t M Q 5 . 0 全 新 的 高 可 用 设 计 高 可 用 架 构 演 进 背 景 在 分 布 式 系 统 中 不 可 避 免 的 会 遇 到 网 络 故 障 , 机 器 宕 机 , 磁 盘 损 坏 等 问 题 , 为 了 向 用 户 不 中 断 且 正 确 的 提 供 服 务 , 要 求 系 统 有 一 定 的 冗 余 与 容 错 能 力 。 R o c k e t M Q 在 日 志 , 统 计 分 析 , 在 线 交 易 , 金 融 交 易 等 丰 富 的 生 产 场 景 中 发 挥 着 至 关 重 要 的 作 用 , 而 不 同 环 境 对 基 础 设 施 的 成 本 与 可 靠 性 提 出 了 不 同 的 诉 求 。 在 R o c k e t M Q v 4 版 本 中 有 两 种 主 流 高 可 用 设 计 , 分 别 是 主 备 模 式 的 无 切 换 架 构 和 基 于 R a f t 的 多 副 本 架 构 ( 图 中 左 侧 和 右 侧 所 示 ) 。 生 产 实 践 中 我 们 发 现 , 两 副 本 的 冷 备 模 式 下 备 节 点 资 源 利 用 率 低 , 主 宕 机 时 特 殊 类 型 消 息 存 在 可 用 性 问 题 ; 而 R a f t 高 度 串 行 化 , 基 于 多 数 派 的 确 认 机 制 在 扩 展 只 读 副 本 时 不 够 灵 活 , 无 法 很 好 的 支 持 两 机 房 对 等 部 署 , 异 地 多 中 心 等 复 杂 场 景 。 R o c k e t M Q v 5 版 本 融 合 了 上 述 方 案 的 优 势 , 提 出 D L e d g e r C o n t r o l l e r 作 为 管 控 节 点 ( 中 间 部 分 所 示 ) , 将 选 举 逻 辑 插 件 化 并 优 化 了 数 据 复 制 的 实 现 。 如 何 实 现 高 可 用 系 统 副 本 组 与 数 据 分 片 在 P r i m a r y B a c k u p 架 构 的 分 布 式 系 统 中 , 一 份 数 据 将 被 复 制 成 多 个 副 本 来 避 免 数 据 丢 失 。 处 理 相 同 数 据 的 一 组 节 点 被 称 为 副 本 组 ( R e p l i c a S e t ) , 副 本 组 的 粒 度 可 以 是 单 个 文 件 级 别 的 ( 例 如 H D F S ) , 也 可 以 是 分 区 级 / 队 列 级 的 ( 例 如 K a f k a ) , 每 个 真 实 存 储 节 点 上 可 以 容 纳 若 干 个 不 同 副 本 组 的 副 本 , 也 可 以 像 R o c k e t M Q 一 样 粗 粒 度 的 独 占 节 点 。 独 占 能 够 显 著 简 化 数 据 写 入 时 确 保 持 久 化 成 功 的 复 杂 度 , 因 为 每 个 副 本 组 上 只 有 主 副 本 会 响 应 读 写 请 求 , 备 机 一 般 配 置 只 读 来 提 供 均 衡 读 负 载 , 选 举 这 件 事 儿 等 价 于 让 副 本 组 内 一 个 副 本 持 有 独 占 的 写 锁 。 R o c k e t M Q 为 每 个 存 储 数 据 的 B r o k e r 节 点 配 置 C l u s t e r N a m e , B r o k e r N a m e 标 识 来 更 好 的 进 行 资 源 管 理 。 多 个 B r o k e r N a m e 相 同 的 节 点 构 成 一 个 副 本 组 。 每 个 副 本 还 拥 有 一 个 从 0 开 始 编 号 , 不 重 复 也 不 一 定 连 续 的 B r o k e r I d 用 来 表 示 身 份 , 编 号 为 0 的 节 点 是 这 个 副 本 组 的 L e a d e r / P r i m a r y / M a s t e r , 故 障 时 通 过 选 举 来 重 新 对 B r o k e r 编 号 标 识 新 的 身 份 。 例 如 B r o k e r I d = , 则 0 为 主 , 其 他 两 个 为 备 。 一 个 副 本 组 内 , 节 点 间 共 享 数 据 的 方 式 有 多 种 , 资 源 的 共 享 程 度 由 低 到 高 来 说 一 般 有 S h a r e d N o t h i n g , S h a r e d D i s k , S h a r e d M e m o r y , S h a r e d E v e r y T h i n g 。 典 型 的 S h a r e d N o t h i n g 架 构 是 T i D B 这 类 纯 分 布 式 的 数 据 库 , T i D B 在 每 个 存 储 节 点 上 使 用 基 于 R o c k s D B 封 装 的 T i K V 进 行 数 据 存 储 , 上 层 通 过 协 议 交 互 实 现 事 务 或 者 M V C C 。 相 比 于 传 统 的 分 库 分 表 策 略 来 说 , T i K V 易 用 性 和 灵 活 程 度 很 高 , 更 容 易 解 决 数 据 热 点 与 伸 缩 时 数 据 打 散 的 一 系 列 问 题 , 但 实 现 跨 多 节 点 的 事 务 就 需 要 涉 及 到 多 次 网 络 的 通 信 。 另 一 端 S h a r e d E v e r y T h i n g 的 案 例 是 A W S 的 A u r o r a , A l i y u n 的 P o l a r S t o r e , 旁 路 K e r n a l 的 方 式 使 应 用 完 全 运 行 于 用 户 态 , 以 最 大 程 度 的 存 储 复 用 来 减 少 资 源 消 耗 , 一 主 多 备 完 全 共 用 一 份 底 层 可 靠 的 存 储 , 实 现 一 写 多 读 , 快 速 切 换 。 大 多 数 K V 操 作 都 是 通 过 关 键 字 的 一 致 性 哈 希 来 计 算 所 分 配 的 节 点 , 当 这 个 节 点 所 在 的 主 副 本 组 产 生 存 储 抖 动 , 主 备 切 换 , 网 络 分 区 等 情 况 下 , 这 个 分 片 所 对 应 的 所 有 键 都 无 法 更 新 , 局 部 会 有 一 些 操 作 失 败 。 消 息 系 统 的 模 型 有 所 不 同 , 流 量 大 但 跨 副 本 组 的 数 据 交 互 极 少 , 无 序 消 息 发 送 到 预 期 分 区 失 败 时 还 可 以 向 其 他 副 本 组 ( 分 片 ) 写 入 , 一 个 副 本 组 的 故 障 不 影 响 全 局 , 这 在 整 体 服 务 的 层 面 上 额 外 提 供 了 跨 副 本 组 的 可 用 性 。 此 外 , 考 虑 到 M Q 作 为 P a a s 层 产 品 , 被 广 泛 部 署 于 W i n d o w s , L i n u x o n A r m 等 各 种 环 境 , 只 有 减 少 和 I a a s 层 产 品 的 深 度 绑 定 , 才 能 提 供 更 好 的 灵 活 性 。 这 种 局 部 故 障 隔 离 和 轻 依 赖 的 特 性 是 R o c k e t M Q 选 则 S h a r e d N o t h i n g 模 型 重 要 原 因 。 副 本 组 中 , 各 个 节 点 处 理 的 速 度 不 同 , 也 就 有 了 日 志 水 位 的 概 念 。 M a s t e r 和 与 其 差 距 不 大 的 S l a v e 共 同 组 成 了 同 步 副 本 集 ( S y n c S t a t e S e t ) 。 如 何 定 义 差 距 不 大 呢 ? 衡 量 的 指 标 可 以 是 日 志 水 位 ( 文 件 大 小 ) 差 距 较 小 , 也 可 以 是 备 落 后 的 时 间 在 一 定 范 围 内 。 在 主 宕 机 时 , 同 步 副 本 集 中 的 其 余 节 点 有 机 会 被 提 升 为 主 , 有 时 需 要 对 系 统 进 行 容 灾 演 练 , 或 者 对 某 些 机 器 进 行 维 护 或 灰 度 升 级 时 希 望 定 向 的 切 换 某 一 个 副 本 成 为 新 主 , 这 又 产 生 了 优 先 副 本 ( P r i o r i t y R e p l i c a ) 的 概 念 。 选 择 优 先 副 本 的 原 则 和 策 略 很 多 , 可 以 动 态 选 择 水 位 最 高 , 加 入 时 间 最 久 或 C o m m i t L o g 最 长 的 副 本 , 也 可 以 支 持 机 架 , 可 用 区 优 先 这 类 静 态 策 略 。 从 模 型 的 角 度 来 看 , R o c k e t M Q 单 节 点 上 T o p i c 数 量 较 多 , 如 果 像 k a f k a 以 t o p i c / p a r t i t i o n 粒 度 维 护 状 态 机 , 节 点 宕 机 会 导 致 上 万 个 状 态 机 切 换 , 这 种 惊 群 效 应 会 带 来 很 多 潜 在 风 险 , 因 此 v 4 版 本 时 R o c k e t M Q 选 择 以 单 个 B r o k e r 作 为 切 换 的 最 小 粒 度 来 管 理 , 相 比 于 其 他 更 细 粒 度 的 实 现 , 副 本 身 份 切 换 时 只 需 要 重 分 配 B r o k e r 编 号 , 对 元 数 据 节 点 压 力 最 小 。 由 于 通 信 的 数 据 量 少 , 可 以 加 快 主 备 切 换 的 速 度 , 单 个 副 本 下 线 的 影 响 被 限 制 在 副 本 组 内 , 减 少 管 理 和 运 维 成 本 。 这 种 实 现 也 一 些 缺 点 , 例 如 存 储 节 点 的 负 载 无 法 以 最 佳 状 态 在 集 群 上 进 行 负 载 均 衡 , T o p i c 与 存 储 节 点 本 身 的 耦 合 度 较 高 , 水 平 扩 展 一 般 会 改 变 分 区 总 数 , 这 就 需 要 在 上 层 附 加 额 外 的 处 理 逻 辑 。 为 了 更 规 范 更 准 确 的 衡 量 副 本 组 的 可 用 性 指 标 , 学 术 上 就 引 入 了 几 个 名 词 : R T O ( R e c o v e r y T i m e O b j e c t i v e ) 恢 复 时 间 目 标 , 一 般 表 示 业 务 中 断 到 恢 复 的 时 间 。 R P O ( R e c o v e r y P o i n t O b j e c t ) 恢 复 点 目 标 , 用 于 衡 量 业 务 连 续 性 。 例 如 某 个 硬 盘 每 天 备 份 , 故 障 时 丢 失 最 近 备 份 后 的 所 有 更 新 。 S L A ( S e r v i c e L e v e l A g r e e m e n t ) 服 务 等 级 协 议 , 厂 商 以 合 约 的 形 式 对 用 户 进 行 服 务 质 量 承 诺 , S L A 越 高 通 常 成 本 也 越 高 。 节 点 数 量 与 可 靠 性 关 系 密 切 , 根 据 不 同 生 产 场 景 , R o c k e t M Q 的 一 个 副 本 组 可 能 会 有 1 , 2 , 3 , 5 个 副 本 。 1 . 单 副 本 成 本 最 低 , 维 护 最 简 单 , 宕 机 时 其 他 副 本 组 接 管 新 消 息 的 写 入 , 但 已 写 入 的 数 据 无 法 读 取 , 造 成 部 分 消 息 消 费 延 迟 。 底 层 硬 件 故 障 还 可 能 导 致 数 据 永 久 丢 失 , 一 般 用 于 非 关 键 日 志 , 数 据 采 集 等 低 可 靠 性 成 本 诉 求 较 强 的 场 景 。 2 . 两 副 本 较 好 的 权 衡 了 数 据 冗 余 的 成 本 与 性 能 , R o c k e t M Q 跨 副 本 组 容 灾 的 特 性 使 得 两 副 本 模 式 适 用 于 绝 大 部 分 I O P S 比 较 高 的 场 景 。 此 时 备 机 可 以 分 摊 一 定 的 读 压 力 ( 尤 其 是 主 副 本 由 于 内 存 紧 张 或 者 产 生 冷 读 时 ) 。 两 副 本 由 于 不 满 足 多 数 派 ( q u o r u m ) 原 则 , 没 有 外 部 系 统 的 参 与 时 , 故 障 时 无 法 进 行 选 举 切 换 。 3 . 三 副 本 和 五 副 本 是 业 界 使 用 最 为 广 泛 的 , 精 心 设 计 的 算 法 使 得 多 数 情 况 下 系 统 可 以 自 愈 。 基 于 P a x o s / R a f t 属 于 牺 牲 高 可 用 性 来 保 证 一 致 性 的 C P 型 设 计 , 存 储 成 本 很 高 , 容 易 受 到 I O 分 布 不 均 匀 和 水 桶 效 应 的 影 响 。 每 条 数 据 都 需 要 半 数 以 上 副 本 响 应 的 设 计 在 需 要 写 透 ( w r i t e t h r o u g h ) 多 副 本 的 消 息 场 景 下 不 够 灵 活 。 日 志 复 制 还 是 消 息 复 制 如 何 保 证 副 本 组 中 数 据 的 最 终 一 致 性 ? 那 肯 定 是 通 过 数 据 复 制 的 方 式 实 现 , 我 们 该 选 择 逻 辑 复 制 还 是 物 理 复 制 呢 ? 逻 辑 复 制 : 使 用 消 息 来 进 行 同 步 的 场 景 也 很 多 , 各 种 c o n n e c t o r 实 现 本 质 上 就 是 把 消 息 从 一 个 系 统 挪 到 另 外 一 个 系 统 上 , 例 如 将 数 据 导 入 导 出 到 E S , F l i n k 这 样 的 系 统 上 进 行 分 析 , 根 据 业 务 需 要 选 择 特 定 T o p i c / T a g 进 行 同 步 , 灵 活 程 度 和 可 扩 展 性 非 常 高 。 这 种 方 案 随 着 T o p i c 增 多 , 系 统 还 会 有 服 务 发 现 , 位 点 和 心 跳 管 理 等 上 层 实 现 造 成 的 性 能 损 失 。 因 此 对 于 消 息 同 步 的 场 景 , R o c k e t M Q 也 支 持 以 消 息 路 由 的 形 式 进 行 数 据 转 移 , 将 消 息 复 制 作 为 业 务 消 费 的 特 例 来 看 待 。 物 理 复 制 : 大 名 鼎 鼎 的 M y S Q L 对 于 操 作 会 记 录 逻 辑 日 志 ( b i n l o g ) 和 重 做 日 志 ( r e d o l o g ) 两 种 日 志 。 其 中 b i n l o g 记 录 了 语 句 的 原 始 逻 辑 , 比 如 修 改 某 一 行 某 个 字 段 , r e d o l o g 属 于 物 理 日 志 , 记 录 了 哪 个 表 空 间 哪 个 数 据 页 改 了 什 么 。 在 R o c k e t M Q 的 场 景 下 , 存 储 层 的 C o m m i t L o g 通 过 链 表 和 内 核 的 M a p p e d F i l e 机 制 抽 象 出 一 条 a p p e n d o n l y 的 数 据 流 。 主 副 本 将 未 提 交 的 消 息 按 序 传 输 给 其 他 副 本 ( 相 当 于 r e d o l o g ) , 并 根 据 一 定 规 则 计 算 确 认 位 点 ( c o n f i r m o f f s e t ) 判 断 日 志 流 是 否 被 提 交 。 这 种 方 案 仅 使 用 一 份 日 志 和 位 点 就 可 以 保 证 主 备 之 间 预 写 日 志 的 一 致 性 , 简 化 复 制 实 现 的 同 时 也 提 高 了 性 能 。 为 了 可 用 性 而 设 计 的 多 副 本 结 构 , 很 明 显 是 需 要 对 所 有 需 要 持 久 化 的 数 据 进 行 复 制 的 , 选 择 物 理 复 制 更 加 节 省 资 源 。 R o c k e t M Q 在 物 理 复 制 时 又 是 如 何 保 证 数 据 的 最 终 一 致 性 呢 ? 这 就 涉 及 到 数 据 的 水 位 对 齐 。 对 于 消 息 和 流 这 样 近 似 F I F O 的 系 统 来 说 , 越 近 期 的 消 息 价 值 越 高 , 消 息 系 统 的 副 本 组 的 单 个 节 点 不 会 像 数 据 库 系 统 一 样 , 保 留 这 个 副 本 的 全 量 数 据 , B r o k e r 一 方 面 不 断 的 将 冷 数 据 规 整 并 转 入 低 频 介 质 来 节 约 成 本 , 同 时 对 热 数 据 盘 上 的 数 据 也 会 由 远 及 近 滚 动 删 除 。 如 果 副 本 组 中 有 副 本 宕 机 较 久 , 或 者 在 备 份 重 建 等 场 景 下 就 会 出 现 日 志 流 的 不 对 齐 和 分 叉 的 复 杂 情 况 。 在 下 图 中 我 们 将 主 节 点 的 C o m m i t L o g 的 首 尾 位 点 作 为 参 考 点 , 这 样 就 可 以 划 分 出 三 个 区 间 。 在 下 图 中 以 蓝 色 箭 头 表 示 。 排 列 组 合 一 下 就 可 以 证 明 备 机 此 时 的 C o m m i t L o g 一 定 满 足 下 列 6 种 情 况 之 一 。 下 面 对 每 种 情 况 进 行 讨 论 与 分 析 : 1 1 情 况 下 满 足 备 M a x 主 M a x , 可 能 由 于 主 异 步 写 磁 盘 宕 机 后 又 成 为 主 , 或 者 网 络 分 区 时 双 主 写 入 造 成 C o m m i t L o g 分 叉 。 由 于 新 主 落 后 于 备 , 少 量 未 确 认 的 消 息 丢 失 , 非 正 常 模 式 的 选 举 ( R o c k e t M Q 将 这 种 情 况 称 为 u n c l e a n 选 举 ) 是 应 该 尽 量 避 免 的 。 3 3 理 论 上 不 会 出 现 , 备 的 数 据 长 于 主 , 原 因 可 能 是 主 节 点 数 据 丢 失 又 叠 加 了 非 正 常 选 举 , 因 此 这 种 情 况 需 要 人 工 介 入 处 理 。 租 约 与 节 点 身 份 变 更 前 文 提 到 R o c k e t M Q 每 个 副 本 组 的 主 副 本 才 接 受 外 部 写 请 求 , 节 点 的 身 份 又 是 如 何 决 定 的 呢 ? 分 布 式 系 统 一 般 分 为 中 心 化 架 构 和 去 中 心 化 架 构 。 对 于 M u l t i R a f t , 每 个 副 本 组 包 含 三 个 或 者 五 个 副 本 , 副 本 组 内 可 以 通 过 P a x o s / R a f t 这 样 的 共 识 协 议 来 进 行 选 主 。 典 型 的 中 心 化 架 构 , 为 了 节 省 数 据 面 资 源 成 本 会 部 署 两 副 本 , 此 时 依 赖 于 外 部 Z K , E T C D , 或 者 D L e d g e r C o n t r o l l e r 这 样 的 组 件 作 为 中 心 节 点 进 行 选 举 。 由 外 置 组 件 裁 决 成 员 身 份 涉 及 到 分 布 式 中 两 个 重 要 的 问 题 : 1 . 如 何 判 断 节 点 的 状 态 是 否 正 常 。 2 . 如 何 避 免 双 主 问 题 。 对 于 第 一 个 问 题 , k u b e r n e t e s 的 解 决 方 案 相 对 优 雅 , k 8 s 对 与 P o d 的 健 康 检 查 包 括 存 活 检 测 ( L i v e n e s s p r o b e s ) 和 就 绪 检 测 ( R e a d i n e s s p r o b e s ) , L i v e n e s s p r o b e s 主 要 是 探 测 应 用 是 否 还 活 着 , 失 败 时 重 启 P o d 。 R e a d i n e s s p r o b e s 来 判 断 探 测 应 用 是 否 接 受 流 量 。 简 单 的 心 跳 机 制 一 般 只 能 实 现 存 活 检 测 , 来 看 一 个 例 子 : 假 设 有 副 本 组 中 有 A 、 B 、 C 三 个 副 本 , 另 有 一 个 节 点 Q ( 哨 兵 ) 负 责 观 测 节 点 状 态 , 同 时 承 担 了 全 局 选 举 与 状 态 维 护 的 职 责 。 节 点 A 、 B 、 C 周 期 性 的 向 Q 发 送 心 跳 , 如 果 Q 超 过 一 段 时 间 ( 一 般 是 两 个 心 跳 间 隔 ) 收 不 到 某 个 节 点 的 心 跳 则 认 为 这 个 节 点 异 常 。 如 果 异 常 的 是 主 副 本 , Q 将 副 本 组 的 其 他 副 本 提 升 为 主 并 广 播 告 知 其 他 副 本 。 在 工 程 实 践 中 , 节 点 下 线 的 可 能 性 一 般 要 小 于 网 络 抖 动 的 可 能 性 。 我 们 假 设 节 点 A 是 副 本 组 的 主 , 节 点 Q 与 节 点 A 之 间 的 网 络 中 断 。 节 点 Q 认 为 A 异 常 。 重 新 选 择 节 点 B 作 为 新 的 M a s t e r , 并 通 知 节 点 A 、 B 、 C 新 的 M a s t e r 是 节 点 B 。 节 点 A 本 身 工 作 正 常 , 与 节 点 B 、 C 之 间 的 网 络 也 正 常 。 由 于 节 点 Q 的 通 知 事 件 到 达 节 点 A 、 B 、 C 的 顺 序 是 未 知 的 , 假 如 先 达 到 B , 在 这 一 时 刻 , 系 统 中 同 时 存 在 两 个 工 作 的 主 , 一 个 是 A , 另 一 个 是 B 。 假 如 此 时 A 、 B 都 接 收 外 部 请 求 并 与 C 同 步 数 据 , 会 产 生 严 重 的 数 据 错 误 。 上 述 双 主 问 题 出 现 的 原 因 在 于 虽 然 节 点 Q 认 为 节 点 A 异 常 , 但 节 点 A 自 己 不 认 为 自 己 异 常 , 在 旧 主 新 主 都 接 受 写 入 的 时 候 就 产 生 了 日 志 流 的 分 叉 , 其 问 题 的 本 质 是 由 于 网 络 分 区 造 成 的 系 统 对 于 节 点 状 态 没 有 达 成 一 致 。 租 约 是 一 种 避 免 双 主 的 有 效 手 段 , 租 约 的 典 型 含 义 是 现 在 中 心 节 点 承 认 哪 个 节 点 为 主 , 并 允 许 节 点 在 租 约 有 效 期 内 正 常 工 作 。 如 果 节 点 Q 希 望 切 换 新 的 主 , 只 需 等 待 前 一 个 主 的 租 约 过 期 , 则 就 可 以 安 全 的 颁 发 新 租 约 给 新 M a s t e r 节 点 , 而 不 会 出 现 双 主 问 题 。 这 种 情 况 下 系 统 对 Q 本 身 的 可 用 性 诉 求 非 常 高 , 可 能 会 成 为 集 群 的 性 能 瓶 颈 。 生 产 中 使 用 租 约 还 有 很 多 实 现 细 节 , 例 如 依 赖 时 钟 同 步 需 要 颁 发 者 的 有 效 期 设 置 的 比 接 收 者 的 略 大 , 颁 发 者 本 身 的 切 换 也 较 为 复 杂 。 在 R o c k e t M Q 的 设 计 中 , 希 望 以 一 种 去 中 心 化 的 设 计 降 低 中 心 节 点 宕 机 带 来 的 全 局 风 险 , ( 这 里 认 为 中 心 化 和 是 否 存 在 中 心 节 点 是 两 件 事 ) 所 以 没 有 引 入 租 约 机 制 。 在 C o n t r o l l e r ( 对 应 于 Q ) 崩 溃 恢 复 期 间 , 由 于 B r o k e r 对 自 己 身 份 会 进 行 永 久 缓 存 , 每 个 主 副 本 会 管 理 这 个 副 本 组 的 状 态 机 , R o c k e t M Q D l e d g e r C o n t r o l l e r 这 种 模 式 能 够 尽 量 保 证 在 大 部 分 副 本 组 在 哨 兵 组 件 不 可 用 时 仍 然 不 影 响 收 发 消 息 的 核 心 流 程 。 而 旧 主 由 于 永 久 缓 存 身 份 , 无 法 降 级 导 致 了 网 络 分 区 时 系 统 必 须 容 忍 双 主 。 产 生 了 多 种 解 决 方 案 , 用 户 可 以 通 过 预 配 置 选 择 A P 型 可 用 性 优 先 , 即 允 许 系 统 通 过 短 时 分 叉 来 保 障 服 务 连 续 性 ( 下 文 还 会 继 续 谈 谈 为 什 么 消 息 系 统 中 分 叉 很 难 避 免 ) , 还 是 C P 型 一 致 性 优 先 , 通 过 配 置 最 小 副 本 a c k 数 超 过 集 群 半 数 以 上 节 点 。 此 时 发 送 到 旧 主 的 消 息 将 因 为 无 法 通 过 h a 链 路 将 数 据 发 送 给 备 , 向 客 户 端 返 回 超 时 , 由 客 户 端 将 发 起 重 试 到 其 他 分 片 。 客 户 端 经 历 一 个 服 务 发 现 的 周 期 之 后 , 客 户 端 就 可 以 正 确 发 现 新 主 。 特 别 的 , 在 网 络 分 区 的 情 况 下 , 例 如 旧 主 和 备 , C o n t r o l l e r 之 间 产 生 网 络 分 区 , 此 时 由 于 没 有 引 入 租 约 机 制 , 旧 主 不 会 自 动 降 级 , 旧 主 可 以 配 置 为 异 步 双 写 , 每 一 条 消 息 需 要 经 过 主 备 的 双 重 确 认 才 能 向 客 户 端 返 回 成 功 。 而 备 在 切 换 为 主 时 , 会 设 置 自 己 只 需 要 单 个 副 本 确 认 的 同 步 写 盘 模 式 。 此 时 , 客 户 端 短 时 间 内 仍 然 可 以 向 旧 主 发 送 消 息 , 旧 主 需 要 两 副 本 确 认 才 能 返 回 成 功 , 因 此 发 送 到 旧 主 的 消 息 会 返 回 S L A V E _ N O T _ A V A I L A B L E 的 超 时 响 应 , 通 过 客 户 端 重 试 将 消 息 发 往 新 的 节 点 。 几 秒 后 , 客 户 端 从 N a m e S e r v e r / C o n t r o l l e r 获 取 新 的 路 由 时 , 旧 主 从 客 户 端 缓 存 中 移 除 , 此 时 完 成 了 备 节 点 的 提 升 。 外 置 的 组 件 可 以 对 节 点 身 份 进 行 分 配 , 上 图 展 示 了 一 个 两 副 本 的 副 本 组 上 线 流 程 : 1 . 多 个 C o n t r o l l e r 通 过 选 举 和 对 B r o k e r 的 请 求 进 行 重 定 向 , 最 终 由 一 个 C o n t r o l l e r 做 为 主 节 点 进 行 身 份 分 配 。 2 . 如 果 R o c k e t M Q 副 本 组 存 在 多 个 副 本 且 需 要 选 主 , 节 点 默 认 以 备 的 身 份 启 动 , 备 节 点 会 将 自 己 注 册 到 C o n t r o l l e r 。 3 . 节 点 从 C o n t r o l l e r 获 取 B r o k e r M e m b e r G r o u p , 包 含 了 这 个 副 本 组 的 描 述 和 连 接 信 息 。 1 . 若 分 配 的 身 份 为 备 , 解 析 出 主 节 点 的 对 外 服 务 的 地 址 并 连 接 , 完 成 日 志 截 断 后 进 行 H A 同 步 。 2 . 若 分 配 的 身 份 为 主 , 等 待 备 机 连 接 到 自 身 的 H A 端 口 , 并 向 N a m e S e r v e r 再 次 宣 告 自 己 是 主 节 点 。 4 . 主 节 点 维 护 整 个 副 本 组 的 信 息 , 向 备 发 起 数 据 复 制 , 周 期 性 的 向 C o n t r o l l e r 汇 报 主 备 之 间 水 位 差 距 , 复 制 速 度 等 。 R o c k e t M Q 弱 依 赖 C o n t r o l l e r 的 实 现 并 不 会 打 破 R a f t 中 每 个 t e r m 最 多 只 有 一 个 l e a d e r 的 假 设 , 工 程 中 一 般 会 使 用 L e a d e r L e a s e 解 决 脏 读 的 问 题 , 配 合 L e a d e r S t i c k i n e s s 解 决 频 繁 切 换 的 问 题 , 保 证 主 的 唯 一 性 。 L e a d e r L e a s e : 租 约 , 上 一 任 L e a d e r 的 L e a s e 过 期 后 , 等 待 一 段 时 间 再 发 起 L e a d e r 选 举 。 L e a d e r S t i c k i n e s s : L e a d e r L e a s e 未 过 期 的 F o l l o w e r 拒 绝 新 的 L e a d e r 选 举 请 求 。 _ 注 : R a f t 认 为 具 有 最 新 已 提 交 的 日 志 的 节 点 才 有 资 格 成 为 L e a d e r , 而 M u l t i P a x o s 无 此 限 制 。 _ 对 于 日 志 的 连 续 性 问 题 , R a f t 在 确 认 一 条 日 志 之 前 会 通 过 位 点 检 查 日 志 连 续 性 , 若 检 查 到 日 志 不 连 续 会 拒 绝 此 日 志 , 保 证 日 志 连 续 性 , M u l t i P a x o s 允 许 日 志 中 有 空 洞 。 R a f t 在 A p p e n d E n t r i e s 中 会 携 带 L e a d e r 的 c o m m i t i n d e x , 一 旦 日 志 形 成 多 数 派 , L e a d e r 更 新 本 地 的 c o m m i t i n d e x ( 对 应 于 R o c k e t M Q 的 c o n f i r m o f f s e t ) 即 完 成 提 交 , 下 一 条 A p p e n d E n t r i e s 会 携 带 新 的 c o m m i t i n d e x 通 知 其 它 节 点 , M u l t i P a x o s 没 有 日 志 连 接 性 假 设 , 需 要 额 外 的 c o m m i t 消 息 通 知 其 它 节 点 。 计 算 日 志 分 叉 位 点 除 了 网 络 分 区 , 很 多 情 况 导 致 日 志 数 据 流 分 叉 。 有 如 下 案 例 : 三 副 本 采 用 异 步 复 制 , 异 步 持 久 化 , A 为 旧 主 B C 为 备 , 切 换 瞬 间 B 日 志 水 位 大 于 C , 此 时 C 成 为 新 主 , B C 副 本 上 的 数 据 会 产 生 分 叉 , 因 为 B 还 多 出 了 一 段 未 确 认 的 数 据 。 那 么 B 是 如 何 以 一 个 简 单 可 靠 的 方 法 去 判 断 自 己 和 C 数 据 分 叉 的 位 点 ? 一 个 直 观 的 想 法 就 是 , 直 接 将 主 备 的 C o m m i t L o g 从 前 向 后 逐 渐 字 节 比 较 , 一 般 生 产 环 境 下 , 主 备 都 有 数 百 G B 的 日 志 文 件 流 , 读 取 和 传 输 大 量 数 据 的 方 案 费 时 费 力 。 很 快 我 们 发 现 , 确 定 两 个 大 文 件 是 否 相 同 的 一 个 好 办 法 就 是 比 较 数 据 的 哈 希 值 , 需 要 对 比 的 数 据 量 一 下 子 就 从 数 百 G B 降 低 为 了 几 百 个 哈 希 值 , 对 于 第 一 个 不 相 同 的 C o m m i t L o g 文 件 , 还 可 以 采 取 局 部 哈 希 的 方 式 对 齐 , 这 里 仍 然 存 在 一 些 计 算 的 代 价 。 还 有 没 有 优 化 的 空 间 呢 , 那 就 是 利 用 任 期 E p o c h 和 偏 移 量 S t a r t O f f s e t 实 现 一 个 新 的 截 断 算 法 。 这 种 E p o c h S t a r t O f f s e t 满 足 如 下 原 则 : 1 . 通 过 共 识 协 议 保 证 给 定 的 一 个 任 期 E p o c h 只 有 一 个 L e a d e r 。 2 . 只 有 L e a d e r 可 以 写 入 新 的 数 据 流 , 满 足 一 定 条 件 才 会 被 提 交 。 3 . F o l l o w e r 只 能 从 L e a d e r 获 取 最 新 的 数 据 流 , F o l l o w e r 上 线 时 按 照 选 举 算 法 进 行 截 断 。 下 面 是 一 个 选 举 截 断 的 具 体 案 例 , 选 举 截 断 算 法 思 想 和 流 程 如 下 : 主 C o m m i t L o g M i n = 3 0 0 , M a x = 2 5 0 0 , E p o c h M a p = 备 C o m m i t L o g M i n = 3 0 0 , M a x = 2 5 0 0 , E p o c h M a p = 1 . 备 节 点 连 接 到 主 节 点 进 行 H A 协 商 , 获 取 主 节 点 的 E p o c h S t a r t O f f s e t 信 息 并 比 较 2 . 备 从 后 向 前 找 到 任 期 起 始 点 相 同 的 那 个 点 作 为 分 叉 任 期 , 在 上 述 案 例 里 是 3 . 选 择 这 个 任 期 里 主 备 结 束 位 点 的 最 小 值 ( 如 果 主 副 本 没 有 切 换 且 为 最 大 任 期 , 则 主 副 本 的 结 束 位 点 是 无 穷 大 ) 实 现 的 代 码 如 下 : $ 数 据 回 发 与 日 志 截 断 故 障 发 生 后 , 系 统 将 会 对 分 叉 数 据 进 行 修 复 , 有 很 多 小 小 细 节 值 得 深 究 与 探 讨 。 在 实 现 数 据 截 断 的 过 程 中 , 有 一 个 很 特 殊 的 动 作 , 当 备 切 主 的 时 候 要 把 C o n s u m e Q u e u e 的 C o n f i r m O f f s e t 提 升 到 C o m m i t L o g 的 M a x P h y O f f s e t , 即 使 这 一 部 分 数 据 在 主 上 是 否 被 提 交 是 未 知 的 。 回 想 起 几 年 前 看 R a f t 的 时 候 , 当 一 条 日 志 被 传 输 到 F o l l o w e r , F o l l o w e r 确 认 收 到 这 条 消 息 , 主 再 把 这 条 日 志 应 用 到 自 己 的 状 态 机 时 , 通 知 客 户 端 和 通 知 所 有 的 f o l l o w e r 去 c o m m i t 这 条 日 志 这 两 件 事 是 并 行 的 , 假 如 l e a d e r 先 回 复 c l i e n t 处 理 成 功 , 此 时 l e a d e r 挂 了 , 由 于 其 他 f o l l o w e r 的 确 认 位 点 c o n f i r m o f f s e t 一 般 会 略 低 于 l e a d e r , 中 间 这 段 未 决 日 志 还 没 应 用 到 f o l l o w e r 的 状 态 机 上 , 这 时 就 出 现 了 状 态 机 不 一 致 的 情 况 , 即 已 经 写 入 l e a d e r 的 数 据 丢 失 了 。 让 我 们 来 举 一 个 具 体 的 案 例 , 假 设 两 副 本 一 主 一 备 : 1 . 主 的 m a x o f f s e t = 1 0 0 , 主 向 备 发 送 当 前 c o n f i r m o f f s e t = 4 0 和 m e s s a g e b u f f e r = [ 4 0 1 0 0 ] 的 数 据 2 . 备 向 主 回 复 c o n f i r m o f f s e t = 1 0 0 后 主 需 要 同 时 做 几 件 事 1 . 本 地 提 交 ( a p p l y ) [ 4 0 1 0 0 ] 区 间 的 数 据 , 用 后 台 的 d i s p a t c h 线 程 异 步 构 建 这 段 数 据 的 索 引 2 . 向 p r o d u c e r 响 应 [ 4 0 1 0 0 ] 这 段 数 据 是 发 送 成 功 的 。 3 . 向 多 个 备 机 异 步 的 提 交 , 实 际 上 是 发 送 了 c o n f i r m o f f s e t = 1 0 0 3 . 此 时 主 突 然 宕 机 , 备 机 的 c o n f i r m o f f s e t 可 能 是 [ 4 0 1 0 0 ] 中 的 值 所 以 当 备 切 换 为 主 的 时 候 , 如 果 直 接 以 4 0 进 行 截 断 , 意 味 着 客 户 端 已 经 发 送 到 服 务 端 的 消 息 丢 失 了 , 正 确 的 水 位 应 该 被 提 升 至 1 0 0 。 但 是 备 还 没 有 收 到 2 . 3 的 c o n f i r m = 1 0 0 的 信 息 , 这 个 行 为 相 当 于 要 提 交 了 未 决 消 息 。 事 实 上 新 l e a d e r 会 遵 守 L e a d e r C o m p l e t e n e s s 的 约 定 , 切 换 时 任 何 副 本 都 不 会 删 除 也 不 会 更 改 旧 l e a d e r 未 决 的 e n t r y 。 新 l e a d e r 在 新 的 t e r m 下 , 会 直 接 应 用 一 个 较 大 的 版 本 将 未 决 的 e n t r y 一 起 提 交 , 这 里 副 本 组 主 备 节 点 的 行 为 共 同 保 证 了 复 制 状 态 机 的 安 全 性 。 那 么 备 切 换 成 功 的 标 志 是 什 么 , 什 么 时 候 才 能 接 收 p r o d u c e r 新 的 流 量 呢 ? 对 于 R a f t 来 说 一 旦 切 换 就 可 以 , 对 于 R o c k e t M Q 来 说 这 个 阶 段 会 被 稍 稍 推 迟 , 即 索 引 已 经 完 全 构 建 结 束 的 时 候 。 R o c k e t M Q 为 了 保 证 构 建 c o n s u m e q u e u e 的 一 致 性 , 会 在 C o m m i t L o g 中 记 录 c o n s u m e q u e u e o f f s e t 的 偏 移 量 , 此 时 c o n f i r m o f f s e t 到 m a x o f f s e t 间 的 数 据 是 副 本 作 为 备 来 接 收 的 , 这 部 分 消 息 在 c o n s u m e q u e u e 中 的 偏 移 量 已 经 固 定 下 来 了 , 而 p r o d u c e r 新 的 流 量 时 由 于 R o c k e t M Q 预 计 算 位 点 的 优 化 , 等 到 消 息 实 际 放 入 C o m m i t L o g 的 再 真 实 的 数 据 分 发 ( d i s p a t c h ) 的 时 候 就 会 发 现 对 应 位 置 的 c o n s u m e q u e u e 已 经 被 占 用 了 , 此 时 就 造 成 了 主 备 索 引 数 据 不 一 致 。 本 质 原 因 是 R o c k e t M Q 存 储 层 预 构 建 索 引 的 优 化 对 日 志 有 一 些 侵 入 性 , 但 切 换 时 短 暂 等 待 的 代 价 远 远 小 于 正 常 运 行 时 提 速 的 收 益 。 消 息 中 间 件 场 景 a . 元 数 据 变 更 是 否 依 赖 于 日 志 目 前 R o c k e t M Q 对 于 元 数 据 是 在 内 存 中 单 独 管 理 的 , 备 机 间 隔 5 秒 向 当 前 的 主 节 点 同 步 数 据 。 例 如 当 前 主 节 点 上 创 建 了 一 个 临 时 T o p i c 并 接 受 了 一 条 消 息 , 在 一 个 同 步 周 期 内 这 个 T o p i c 又 被 删 除 了 , 此 时 主 备 节 点 元 数 据 可 能 不 一 致 。 又 比 如 位 点 更 新 的 时 候 , 对 于 单 个 队 列 而 言 , 多 副 本 架 构 中 存 在 多 条 消 费 位 点 更 新 链 路 , C o n s u m e r 拉 取 消 息 时 更 新 , C o n s u m e r 主 动 向 b r o k e r 更 新 , 管 控 重 置 位 点 , H A 链 路 更 新 , 当 副 本 组 发 生 主 备 切 换 时 , c o n s u m e r g r o u p 同 时 发 生 c o n s u m e r 上 下 线 , 由 于 路 由 发 现 的 时 间 差 , 还 可 能 造 成 同 一 个 消 费 组 两 个 不 同 c o n s u m e r 分 别 消 费 同 一 副 本 组 主 备 上 同 一 个 队 列 的 情 况 。 原 因 在 于 备 机 重 做 元 数 据 更 新 和 消 息 流 这 两 件 事 是 异 步 的 , 这 有 一 定 概 率 会 造 成 脏 数 据 。 由 于 R o c k e t M Q 单 个 节 点 上 T o p i c / G r o u p 数 量 较 多 , 通 过 日 志 的 实 现 会 导 致 持 久 化 的 数 据 量 很 大 , 在 复 杂 场 景 下 基 于 日 志 做 回 滚 依 赖 s n a p s h o t 机 制 也 会 增 加 计 算 开 销 和 恢 复 时 间 。 这 个 问 题 和 数 据 库 很 像 , M y S Q L 在 执 行 D D L 修 改 元 数 据 时 通 过 会 创 建 M D L 锁 , 阻 塞 用 户 其 他 操 作 访 问 表 空 间 的 访 问 。 备 库 同 步 主 库 也 会 加 锁 , 元 数 据 修 改 开 始 点 和 结 束 点 所 代 表 的 两 个 日 志 并 不 是 一 个 原 子 操 作 , 这 意 味 着 主 库 上 在 修 改 元 数 据 的 过 程 中 如 果 宕 机 了 , 备 库 上 持 有 的 M D L 锁 就 无 法 释 放 。 M y S Q L 的 解 决 方 案 是 在 主 库 每 次 崩 溃 恢 复 后 , 都 写 一 条 特 殊 的 日 志 , 通 知 所 有 连 接 的 备 库 释 放 其 持 有 的 所 有 M D L 排 他 锁 。 对 所 有 操 作 都 走 日 志 流 进 行 状 态 机 复 制 要 求 存 储 层 有 多 种 日 志 类 型 , 实 现 也 更 加 复 杂 。 R o c k e t M Q 选 择 以 另 一 种 同 步 的 模 式 操 作 , 即 类 似 Z A B 这 样 二 阶 段 协 议 , 例 如 位 点 更 新 时 的 可 以 选 择 配 置 L o c k I n S t r i c t M o d e 让 备 都 同 步 这 条 修 改 。 事 实 上 R o c k e t M Q 为 了 优 化 上 述 位 点 跳 跃 的 现 象 , 客 户 端 在 未 重 启 时 , 遇 到 服 务 端 主 备 切 换 还 会 用 优 先 采 纳 本 地 位 点 的 方 式 获 取 消 息 , 进 一 步 减 少 重 复 消 费 。 b . 同 步 复 制 与 异 步 复 制 同 步 复 制 的 含 义 是 用 户 的 一 个 操 作 在 多 个 副 本 上 都 已 经 提 交 。 正 常 情 况 下 , 假 设 一 个 副 本 组 中 的 3 个 副 本 都 要 对 相 同 一 个 请 求 进 行 确 认 , 相 当 于 数 据 写 透 3 个 副 本 ( 简 称 3 3 写 ) , 3 3 写 提 供 了 非 常 高 的 数 据 可 靠 性 , 但 是 把 所 有 从 节 点 都 配 置 为 同 步 复 制 时 任 何 一 个 同 步 节 点 的 中 断 都 会 导 致 整 个 副 本 组 处 理 请 求 失 败 。 当 第 三 个 副 本 是 跨 可 用 区 时 , 长 尾 也 会 带 来 一 定 的 延 迟 。 异 步 复 制 模 式 下 , 尚 未 复 制 到 从 节 点 的 写 请 求 都 会 丢 失 。 向 客 户 端 确 认 的 写 操 作 也 无 法 保 证 被 持 久 化 。 异 步 复 制 是 一 种 故 障 时 R P O 不 为 0 的 配 置 模 式 , 由 于 不 用 考 虑 从 节 点 上 的 状 态 , 总 是 可 以 继 续 响 应 写 请 求 , 系 统 的 延 迟 更 低 , 吞 吐 性 能 更 好 。 为 了 权 衡 两 者 , 通 常 只 有 其 中 一 个 从 节 点 是 同 步 的 , 而 其 他 节 点 是 异 步 的 模 式 。 只 要 同 步 的 从 节 点 变 得 不 可 用 或 性 能 下 降 , 则 将 另 一 个 异 步 的 从 节 点 提 升 为 同 步 模 式 。 这 样 可 以 保 证 至 少 有 两 个 节 点 ( 即 主 节 点 和 一 个 同 步 从 节 点 ) 拥 有 最 新 的 数 据 副 本 。 这 种 模 式 称 为 2 3 写 , 能 帮 助 避 免 抖 动 , 提 供 更 好 的 延 迟 稳 定 性 , 有 时 候 也 叫 称 为 半 同 步 。 在 R o c k e t M Q 的 场 景 中 , 异 步 复 制 也 被 广 泛 应 用 在 消 息 读 写 比 极 高 , 从 节 点 数 量 多 或 者 异 地 多 副 本 场 景 。 同 步 复 制 和 异 步 复 制 是 通 过 B r o k e r 配 置 文 件 里 的 b r o k e r R o l e 参 数 进 行 设 置 的 , 这 个 参 数 可 以 被 设 置 成 A S Y N C _ M A S T E R 、 S Y N C _ M A S T E R 、 S L A V E 三 个 值 中 的 一 个 。 实 际 应 用 中 要 结 合 业 务 场 景 合 理 设 置 持 久 化 方 式 和 主 从 复 制 方 式 , 通 常 , 由 于 网 络 的 速 度 高 于 本 地 I O 速 度 , 采 用 异 步 持 久 化 和 同 步 复 制 是 一 个 权 衡 性 能 与 可 靠 性 的 设 置 。 c . 副 本 组 自 适 应 降 级 同 步 复 制 的 含 义 是 一 条 数 据 同 时 被 主 备 确 认 才 返 回 用 户 操 作 成 功 , 可 以 保 证 主 宕 机 后 消 息 还 在 备 中 , 适 合 可 靠 性 要 求 较 高 的 场 景 , 同 步 复 制 还 可 以 限 制 未 同 步 的 数 据 量 以 减 少 h a 链 路 的 内 存 压 力 , 缺 点 则 是 副 本 组 中 的 某 一 个 备 出 现 假 死 就 会 影 响 写 入 。 异 步 复 制 无 需 等 待 备 确 认 , 性 能 高 于 同 步 复 制 , 切 换 时 未 提 交 的 消 息 可 能 会 丢 失 ( 参 考 前 文 的 日 志 分 叉 ) 。 在 三 副 本 甚 至 五 副 本 且 对 可 靠 性 要 求 高 的 场 景 中 无 法 采 用 异 步 复 制 , 采 用 同 步 复 制 需 要 每 一 个 副 本 确 认 后 才 会 返 回 , 在 副 本 数 多 的 情 况 下 严 重 影 响 效 率 。 关 于 一 条 消 息 需 要 被 多 少 副 本 确 认 这 个 问 题 , R o c k e t M Q 服 务 端 会 有 一 些 数 量 上 的 配 置 来 进 行 灵 活 调 整 : T o t a l R e p l i c a s : 全 部 副 本 数 I n S y n c R e p l i c a s : 每 条 消 息 至 少 要 被 这 个 数 量 的 B r o k e r 确 认 ( 如 果 主 为 A S Y N C _ M A S T E R 或 者 A l l A c k 模 式 则 该 参 数 不 生 效 ) M i n I n S y n c R e p l i c a s : 最 小 的 同 步 副 本 数 , 如 果 I n S y n c R e p l i c a s 。 对 于 正 常 情 况 下 , 两 个 副 本 会 处 于 同 步 复 制 , 当 备 下 线 或 假 死 时 , 会 进 行 自 适 应 降 级 , 保 证 主 节 点 还 能 正 常 收 发 消 息 , 这 个 功 能 为 用 户 提 供 了 一 个 可 用 性 优 先 的 选 择 。 d . 轻 量 级 心 跳 与 快 速 隔 离 在 R o c k e t M Q v 4 . x 版 本 的 实 现 中 , B r o k e r 周 期 性 的 ( 间 隔 3 0 秒 ) 将 自 身 的 所 有 T o p i c 序 列 化 并 传 输 到 N a m e S e r v e r 注 册 进 行 保 活 。 由 于 B r o k e r 上 T o p i c 的 元 数 据 规 模 较 大 , 带 来 了 较 大 的 网 络 流 量 开 销 , B r o k e r 的 注 册 间 隔 不 能 设 置 的 太 短 。 同 时 N a m e S e r v e r 对 B r o k e r 是 采 取 延 迟 隔 离 机 制 , 防 止 N a m e S e r v e r 网 络 抖 动 时 可 能 瞬 间 移 除 所 有 B r o k e r 的 注 册 信 息 , 引 发 服 务 的 雪 崩 。 默 认 情 况 下 异 常 主 宕 机 时 超 过 2 分 钟 , 或 者 备 切 换 为 主 重 新 注 册 后 才 会 替 换 。 容 错 设 计 的 同 时 导 致 B r o k e r 故 障 转 移 缓 慢 , R o c k e t M Q v 5 . 0 版 本 引 入 轻 量 级 心 跳 ( 参 数 l i t e H e a r t B e a t ) , 将 B r o k e r 的 注 册 行 为 与 N a m e S e r v e r 的 心 跳 进 行 了 逻 辑 拆 分 , 将 心 跳 间 隔 减 小 到 1 秒 。 当 N a m e S e r v e r 间 隔 5 秒 ( 可 配 置 ) 没 有 收 到 来 自 B r o k e r 的 心 跳 请 求 就 对 B r o k e r 进 行 移 除 , 使 异 常 场 景 下 自 愈 的 时 间 从 分 钟 级 缩 短 到 了 秒 级 。 R o c k e t M Q 高 可 用 架 构 演 进 路 线 无 切 换 架 构 的 演 进 最 早 的 时 候 , R o c k e t M Q 基 于 M a s t e r S l a v e 模 式 提 供 了 主 备 部 署 的 架 构 , 这 种 模 式 提 供 了 一 定 的 高 可 用 能 力 , 在 M a s t e r 节 点 负 载 较 高 情 况 下 , 读 流 量 可 以 被 重 定 向 到 备 机 。 由 于 没 有 选 主 机 制 , 在 M a s t e r 节 点 不 可 用 时 , 这 个 副 本 组 的 消 息 发 送 将 会 完 全 中 断 , 还 会 出 现 延 迟 消 息 、 事 务 消 息 、 P o p 消 息 等 二 级 消 息 无 法 消 费 或 者 延 迟 。 此 外 , 备 机 在 正 常 工 作 场 景 下 资 源 使 用 率 较 低 , 造 成 一 定 的 资 源 浪 费 。 为 了 解 决 这 些 问 题 , 社 区 提 出 了 在 一 个 B r o k e r 进 程 内 运 行 多 个 B r o k e r C o n t a i n e r , 这 个 设 计 类 似 于 F l i n k 的 s l o t , 让 一 个 B r o k e r 进 程 上 可 以 以 C o n t a i n e r 的 形 式 运 行 多 个 节 点 , 复 用 传 输 层 的 连 接 , 业 务 线 程 池 等 资 源 , 通 过 单 节 点 主 备 交 叉 部 署 来 同 时 承 担 多 份 流 量 , 无 外 部 依 赖 , 自 愈 能 力 强 。 这 种 方 式 下 隔 离 性 弱 于 使 用 原 生 容 器 方 式 进 行 隔 离 , 同 时 由 于 架 构 的 复 杂 度 增 加 导 致 了 自 愈 流 程 较 为 复 杂 。 切 换 架 构 的 演 进 另 一 条 演 进 路 线 则 是 基 于 可 切 换 的 , R o c k e t M Q 也 尝 试 过 依 托 于 Z o o k e e p e r 的 分 布 式 锁 和 通 知 机 制 进 行 H A 状 态 的 管 理 。 引 入 外 部 依 赖 的 同 时 给 架 构 带 来 了 复 杂 性 , 不 容 易 做 小 型 化 部 署 , 部 署 运 维 和 诊 断 的 成 本 较 高 。 另 一 种 方 式 就 是 基 于 R a f t 在 集 群 内 自 动 选 主 , R a f t 中 的 副 本 身 份 被 透 出 和 复 用 到 B r o k e r R o l e 层 面 去 除 外 部 依 赖 , 然 而 强 一 致 的 R a f t 版 本 并 未 支 持 灵 活 的 降 级 策 略 , 无 法 在 C 和 A 之 间 灵 活 调 整 。 两 种 切 换 方 案 都 是 C P 设 计 , 牺 牲 高 可 用 优 先 保 证 一 致 性 。 主 副 本 下 线 时 选 主 和 路 由 定 时 更 新 策 略 导 致 整 个 故 障 转 移 时 间 依 然 较 长 , R a f t 本 身 对 三 副 本 的 要 求 也 会 面 临 较 大 的 成 本 压 力 , R o c k e t M Q 原 生 的 T r a n s i e n t P o o l , 零 拷 贝 等 一 些 用 来 避 免 减 少 I O 压 力 的 方 案 在 R a f t 下 无 法 有 效 使 用 。 R o c k e t M Q D L e d g e r 融 合 模 式 R o c k e t M Q D L e d g e r 融 合 模 式 是 R o c k e t M Q 5 . 0 演 进 中 结 合 上 述 两 条 路 线 后 的 一 个 系 统 的 解 决 方 案 。 核 心 的 特 性 有 以 下 几 点 : 1 . 利 用 可 内 嵌 于 N a m e S e r v e r 的 C o n t r o l l e r 进 行 选 主 , 无 外 部 依 赖 , 对 两 副 本 支 持 友 好 。 2 . 引 入 E p o c h S t a r t O f f s e t 机 制 来 计 算 日 志 分 叉 位 点 。 3 . 消 息 在 进 行 写 入 时 , 提 供 了 灵 活 的 配 置 来 协 调 系 统 对 于 可 用 性 还 是 一 致 性 优 先 的 诉 求 。 4 . 简 化 日 志 复 制 协 议 使 得 日 志 复 制 为 高 效 。 几 种 实 现 对 比 表 如 下 : 与 其 他 消 息 系 统 的 对 比 控 制 节 点 1 . 是 否 强 制 要 求 选 主 K a f k a 的 C o n t r o l l e r 是 B r o k e r 选 举 产 生 , 这 需 要 有 一 个 存 储 节 点 间 的 服 务 发 现 机 制 。 R o c k e t M Q 的 C o n t r o l l e r 可 以 作 为 管 控 节 点 单 独 存 在 。 对 K a f k a , P u l s a r 而 言 必 须 选 择 主 副 本 进 行 写 入 , 随 着 时 间 的 运 行 节 点 之 间 负 载 需 要 通 过 复 杂 的 方 案 进 行 再 均 衡 。 对 R o c k e t M Q 的 融 合 架 构 而 言 , 由 于 选 主 是 可 选 的 , 静 态 布 局 的 方 案 ( 例 如 无 需 依 赖 复 杂 的 动 态 调 度 就 可 以 较 为 均 衡 的 实 现 跨 机 架 跨 可 用 区 ) , 并 且 无 切 换 与 切 换 架 构 可 以 相 互 转 换 。 2 . C o n t r o l l e r 的 逻 辑 复 杂 度 R o c k e t M Q C o n t r o l l e r 相 比 K a f k a C o n t r o l l e r 更 加 轻 量 , K a f k a 的 C o n t r o l l e r 承 担 P a r t i t i o n 粒 度 的 I S R 维 护 和 选 举 等 功 能 , 而 R o c k e t M Q 的 C o n t r o l l e r 维 护 的 数 据 是 副 本 组 粒 度 的 , 对 于 元 数 据 只 维 护 节 点 身 份 , 更 加 简 单 。 R o c k e t M Q C o n t r o l l e r 可 以 独 立 部 署 , 也 可 以 内 嵌 N a m e S e r v e r 运 行 。 3 . C o n t r o l l e r 依 赖 程 度 R o c k e t M Q B r o k e r 的 同 步 副 本 集 维 护 是 M a s t e r B r o k e r 节 点 上 报 , 由 于 不 强 依 赖 中 心 节 点 来 提 供 租 约 , c o n t r o l l e r 宕 机 时 虽 然 无 法 为 同 时 有 主 故 障 的 副 本 组 选 举 , 但 不 影 响 绝 大 部 分 副 本 组 可 用 性 。 P u l s a r 中 通 过 f e n c i n g 机 制 防 止 有 多 个 w r i t e r ( p u l s a r 中 的 计 算 节 点 称 为 b r o k e r ) 同 时 写 同 一 个 p a r t i t i o n , 是 对 外 部 有 依 赖 的 。 数 据 节 点 1 . 副 本 存 储 结 构 的 抽 象 与 最 小 粒 度 不 同 , 在 这 一 点 上 其 实 三 者 的 设 计 各 有 优 势 K a f k a 的 存 储 抽 象 粒 度 是 P a r t i t i o n , 对 每 个 分 区 进 行 维 护 多 副 本 , 扩 容 需 要 进 行 数 据 复 制 , 对 于 冷 读 支 持 更 好 。 R o c k e t M Q 的 日 志 流 是 B r o k e r 粒 度 的 , 顺 序 写 盘 效 率 更 高 , 在 磁 盘 空 间 不 足 时 一 般 选 择 水 平 扩 容 , 只 需 复 制 元 数 据 。 P u l s a r 其 实 抽 象 了 一 个 分 布 式 日 志 流 J o u r n a l , 分 区 被 进 一 步 分 成 分 片 , 根 据 配 置 的 时 间 或 大 小 进 行 滚 动 , 扩 容 只 需 复 制 元 数 据 。 2 . 复 杂 的 参 数 配 置 被 收 敛 至 服 务 端 K a f k a 和 R o c k e t M Q 都 支 持 灵 活 的 配 置 单 条 消 息 的 a c k 数 , 即 权 衡 数 据 写 入 灵 活 性 与 可 靠 性 。 R o c k e t M Q 在 向 云 原 生 演 进 的 过 程 希 望 简 化 客 户 端 A P I 与 配 置 , 让 业 务 方 只 需 关 心 消 息 本 身 , 选 择 在 服 务 端 配 置 统 一 配 置 这 个 值 。 3 . 副 本 数 据 的 同 步 方 式 不 同 P u l s a r 采 用 星 型 写 : 数 据 直 接 从 w r i t e r 写 到 多 个 b o o k e e p e r 。 适 合 客 户 端 与 存 储 节 点 混 部 场 景 。 数 据 路 径 只 需 要 1 跳 , 延 迟 更 低 。 缺 点 是 当 存 储 计 算 分 离 时 , 星 型 写 需 要 更 多 的 存 储 集 群 和 计 算 集 群 间 网 络 带 宽 。 R o c k e t M Q 和 K a f k a 采 用 Y 型 写 : c l i e n t 先 写 到 一 个 主 副 本 , 由 其 再 转 发 给 另 外 B r o k e r 副 本 。 虽 然 服 务 端 内 部 带 宽 充 裕 , 但 需 要 2 跳 网 络 , 会 增 加 延 迟 。 Y 型 写 利 于 解 决 文 件 多 客 户 端 写 的 问 题 , 也 更 容 易 利 用 2 3 写 克 服 毛 刺 , 提 供 更 好 的 延 迟 稳 定 性 。 高 可 用 架 构 的 未 来 仔 细 阅 读 R o c k e t M Q 的 源 码 , 其 实 大 家 也 会 发 现 R o c k e t M Q 在 各 种 边 缘 问 题 处 理 上 细 节 满 满 , 节 点 失 效 , 网 络 抖 动 , 副 本 一 致 性 , 持 久 化 , 可 用 性 与 延 迟 之 间 存 在 各 种 细 微 的 权 衡 , 这 也 是 R o c k e t M Q 多 年 来 在 生 产 环 境 下 所 积 累 的 核 心 竞 争 力 之 一 。 随 着 分 布 式 技 术 的 进 一 步 发 展 , 更 多 更 有 意 思 的 技 术 , 如 基 于 R D M A 网 络 的 复 制 协 议 也 呼 之 欲 出 。 R o c k e t M Q 将 与 社 区 协 同 进 步 , 发 展 为 “ 消 息 , 事 件 , 流 ” 一 体 化 的 融 合 平 台 。 参 考 文 档 : 1 . P a x o s d e s i g n : 2 . S O F A J R a f t : 3 . P u l s a r G e o R e p l i c a t i o n : 4 . P u l s a r M e t a d a t a : 5 . K a f k a P e r s i s t e n c e : 6 . K a f k a B a l a n c i n g l e a d e r s h i p : 7 . W i n d o w s A z u r e S t o r a g e : A H i g h l y A v a i l a b l e C l o u d S t o r a g e S e r v i c e w i t h S t r o n g C o n s i s t e n c y : 8 . P o l a r D B S e r v e r l e s s : A C l o u d N a t i v e D a t a b a s e f o r D i s a g g r e g a t e d D a t a C e n t e r s : 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } ) ; } ) } ) : n u l l } 2 0 2 2 年 1 1 月 9 日 消 息 队 列 R o c k e t M Q 5 . 0 : 从 消 息 服 务 到 云 原 生 事 件 流 平 台 前 言 回 顾 R o c k e t M Q 的 发 展 历 程 , 至 今 已 十 年 有 余 。 2 0 2 2 年 R o c k e t M Q 5 . 0 正 式 发 布 , 全 面 迈 进 云 原 生 时 代 。 1 1 月 5 日 , 2 0 2 2 杭 州 · 云 栖 大 会 上 , 阿 里 云 智 能 高 级 产 品 专 家 杨 秋 弟 在 云 原 生 峰 会 上 发 表 主 题 演 讲 , 发 布 消 息 队 列 R o c k e t M Q 5 . 0 : 从 消 息 服 务 到 云 原 生 事 件 流 处 理 平 台 。 阿 里 云 智 能 高 级 产 品 专 家 ’ 启 动 成 功 会 打 印 如 下 日 志 : 2 0 2 1 0 9 0 6 1 6 : 2 3 : 1 4 I N F O p o o l 2 t h r e a d 1 O p e n H o o d i e J a v a W r i t e C l i e n t s u c c e s s f u l l y ( 4 ) 此 时 向 s o u r c e t o p i c 生 产 的 数 据 会 自 动 写 入 到 1 H u d i 对 应 的 t a b l e 中 , 可 以 通 过 H u d i 的 a p i 进 行 查 询 。 4 、 配 置 解 析 ( 1 ) R o c k e t M Q c o n n e c t o r 需 要 配 置 R o c k e t M Q 集 群 信 息 和 c o n n e c t o r 插 件 位 置 , 包 含 : c o n n e c t 工 作 节 点 i d 标 识 w o r k e r i d 、 c o n n e c t 服 务 命 令 接 收 端 口 h t t p P o r t 、 r o c k e t m q 集 群 n a m e s r v A d d r 、 c o n n e c t 本 地 配 置 储 存 目 录 s t o r e P a t h R o o t D i r 、 c o n n e c t o r 插 件 目 录 p l u g i n P a t h s 。 R o c k e t M Q c o n n e c t o r 配 置 表 ( 2 ) H u d i 任 务 需 要 配 置 H u d i 表 路 径 t a b l e P a t h 和 表 名 称 t a b l e N a m e , 以 及 H u d i 使 用 的 S c h e m a 文 件 。 H u d i 任 务 配 置 表 _ 点 击 _ _ 即 可 查 看 L a k e h o u s e 构 建 实 操 视 频 _ 附 录 : 在 本 地 M a c 系 统 构 建 L a k e h o u s e d e m o 涉 及 到 的 组 件 : r o c k e t m q 、 r o c k e t m q c o n n e c t o r r u n t i m e 、 r o c k e t m q c o n n e c t h u d i 、 h u d i 、 h d f s 、 a v r o 、 s p a r k s h e l l 0 、 启 动 h d f s 下 载 h a d o o p 包 c d / U s e r s / o s g o o / D o c u m e n t s / h a d o o p 2 . 1 0 . 1 v i c o r e s i t e . x m l f s . d e f a u l t F S h d f s : / / l o c a l h o s t : 9 0 0 0 v i h d f s s i t e . x m l d f s . r e p l i c a t i o n 1 . / b i n / h d f s n a m e n o d e f o r m a t . / s b i n / s t a r t d f s . s h j p s 看 下 n a m e n o d e , d a t a n o d e l s o f i : 9 0 0 0 . / b i n / h d f s d f s m k d i r p / U s e r s / o s g o o / D o w n l o a d s 1 、 启 动 r o c k e t m q 集 群 , 创 建 r o c k e t m q c o n n e c t o r 内 置 t o p i c Q i c k S t a r t : h t t p s : / / r o c k e t m q . a p a c h e . o r g / d o c s / q u i c k s t a r t / s h m q a d m i n u p d a t e t o p i c t c o n n e c t o r c l u s t e r t o p i c n l o c a l h o s t : 9 8 7 6 c D e f a u l t C l u s t e r s h m q a d m i n u p d a t e t o p i c t c o n n e c t o r c o n f i g t o p i c n l o c a l h o s t : 9 8 7 6 c D e f a u l t C l u s t e r s h m q a d m i n u p d a t e t o p i c t c o n n e c t o r o f f s e t t o p i c n l o c a l h o s t : 9 8 7 6 c D e f a u l t C l u s t e r s h m q a d m i n u p d a t e t o p i c t c o n n e c t o r p o s i t i o n t o p i c n l o c a l h o s t : 9 8 7 6 c D e f a u l t C l u s t e r 2 、 创 建 数 据 入 湖 的 源 端 t o p i c , t e s t h u d i 1 s h m q a d m i n u p d a t e t o p i c t t e s t h u d i 1 n l o c a l h o s t : 9 8 7 6 c D e f a u l t C l u s t e r 3 、 编 译 r o c k e t m q c o n n e c t h u d i 0 . 0 . 1 S N A P S H O T j a r w i t h d e p e n d e n c i e s . j a r c d r o c k e t m q c o n n e c t h u d i m v n c l e a n i n s t a l l D s k i p T e s t U 4 、 启 动 r o c k e t m q c o n n e c t o r r u n t i m e 配 置 c o n n e c t . c o n f w o r k e r I d = D E F A U L T _ W O R K E R _ 1 s t o r e P a t h R o o t D i r = / U s e r s / o s g o o / D o w n l o a d s / s t o r e R o o t H t t p p o r t f o r u s e r t o a c c e s s R E S T A P I h t t p P o r t = 8 0 8 2 R o c k e t m q n a m e s r v A d d r n a m e s r v A d d r = l o c a l h o s t : 9 8 7 6 S o u r c e o r s i n k c o n n e c t o r j a r f i l e d i r , T h e d e f a u l t v a l u e i s r o c k e t m q c o n n e c t s a m p l e p l u g i n P a t h s = / U s e r s / o s g o o / D o w n l o a d s / c o n n e c t o r p l u g i n s 拷 贝 r o c k e t m q h u d i c o n n e c t o r . j a r 到 p l u g i n P a t h s = / U s e r s / o s g o o / D o w n l o a d s / c o n n e c t o r p l u g i n s s h r u n _ w o r k e r . s h 5 、 配 置 入 湖 c o n f i g c u r l h t t p : / / l o c a l h o s t : 8 0 8 2 / c o n n e c t o r s / r o c k e t m q c o n n e c t h u d i ? c o n f i g = \ \ 6 、 发 送 消 息 到 t e s t h u d i 1 7 、 利 用 s p a r k 读 取 c d / U s e r s / o s g o o / D o w n l o a d s / s p a r k 3 . 1 . 2 b i n h a d o o p 3 . 2 / b i n . / s p a r k s h e l l \ \ p a c k a g e s o r g . a p a c h e . h u d i : h u d i s p a r k 3 b u n d l e _ 2 . 1 2 : 0 . 9 . 0 , o r g . a p a c h e . s p a r k : s p a r k a v r o _ 2 . 1 2 : 3 . 0 . 1 \ \ c o n f s p a r k . s e r i a l i z e r = o r g . a p a c h e . s p a r k . s e r i a l i z e r . K r y o S e r i a l i z e r i m p o r t o r g . a p a c h e . h u d i . Q u i c k s t a r t U t i l s . _ i m p o r t s c a l a . c o l l e c t i o n . J a v a C o n v e r s i o n s . _ i m p o r t o r g . a p a c h e . s p a r k . s q l . S a v e M o d e . _ i m p o r t o r g . a p a c h e . h u d i . D a t a S o u r c e R e a d O p t i o n s . _ i m p o r t o r g . a p a c h e . h u d i . D a t a S o u r c e W r i t e O p t i o n s . _ i m p o r t o r g . a p a c h e . h u d i . c o n f i g . H o o d i e W r i t e C o n f i g . _ v a l t a b l e N a m e = t 7 v a l b a s e P a t h = h d f s : / / l o c a l h o s t : 9 0 0 0 / U s e r s / o s g o o / D o c u m e n t s / b a s e p a t h 7 v a l t r i p s S n a p s h o t D F = s p a r k . r e a d . f o r m a t ( h u d i ) . l o a d ( b a s e P a t h + / ) t r i p s S n a p s h o t D F . c r e a t e O r R e p l a c e T e m p V i e w ( h u d i _ t r i p s _ s n a p s h o t ) s p a r k . s q l ( s e l e c t f r o m h u d i _ t r i p s _ s n a p s h o t ) . s h o w ( ) 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : ) : n u l l } 2 0 2 1 年 3 月 1 8 日 如 何 在 S p r i n g 生 态 中 玩 转 R o c k e t M Q ? 在 S p r i n g 生 态 中 玩 转 R o c k e t M Q 系 列 教 程 现 已 登 陆 知 行 动 手 实 验 室 , 立 即 体 验 ! 移 动 端 同 学 , 需 要 在 P C 端 登 录 s t a r t . a l i y u n . c o m 进 行 体 验 。 R o c k e t M Q 作 为 业 务 消 息 的 首 选 , 在 消 息 和 流 处 理 领 域 被 广 泛 应 用 。 而 微 服 务 生 态 S p r i n g 框 架 也 是 业 务 开 发 中 最 受 欢 迎 的 框 架 , 两 者 的 完 美 契 合 使 得 R o c k e t M Q 成 为 S p r i n g M e s s a g i n g 实 现 中 最 受 欢 迎 的 消 息 实 现 。 本 文 展 示 了 5 种 在 S p r i n g 生 态 中 文 玩 转 R o c k e t M Q 的 方 式 , 并 描 述 了 每 个 项 目 的 特 点 和 使 用 场 景 。 一 、 前 言 上 世 纪 9 0 年 代 末 , 随 着 J a v a E E ( E n t e r p r i s e E d i t i o n ) 的 出 现 , 特 别 是 E n t e r p r i s e J a v a B e a n s 的 使 用 需 要 复 杂 的 描 述 符 配 置 和 死 板 复 杂 的 代 码 实 现 , 增 加 了 广 大 开 发 者 的 学 习 曲 线 和 开 发 成 本 , 由 此 基 于 简 单 的 X M L 配 置 和 普 通 J a v a 对 象 ( P l a i n O l d J a v a O b j e c t s ) 的 S p r i n g 技 术 应 运 而 生 , 依 赖 注 入 ( D e p e n d e n c y I n j e c t i o n ) , 控 制 反 转 ( I n v e r s i o n o f C o n t r o l ) 和 面 向 切 面 编 程 ( A O P ) 的 技 术 更 加 敏 捷 地 解 决 了 传 统 J a v a 企 业 及 版 本 的 不 足 。 随 着 S p r i n g 的 持 续 演 进 , 基 于 注 解 ( A n n o t a t i o n ) 的 配 置 逐 渐 取 代 了 X M L 文 件 配 置 。 除 了 依 赖 注 入 、 控 制 翻 转 、 A O P 这 些 技 术 , S p r i n g 后 续 衍 生 出 A M Q P 、 T r a n s a c t i o n a l 、 S e c u r i t y 、 B a t c h 、 D a t a A c c e s s 等 模 块 , 涉 及 开 发 的 各 个 领 域 。 2 0 1 4 年 4 月 1 日 , S p r i n g B o o t 1 . 0 . 0 正 式 发 布 。 它 基 于 “ 约 定 大 于 配 置 ” ( C o n v e n t i o n o v e r c o n f i g u r a t i o n ) 这 一 理 念 来 快 速 地 开 发 , 测 试 , 运 行 和 部 署 S p r i n g 应 用 , 并 能 通 过 简 单 地 与 各 种 启 动 器 ( 如 s p r i n g b o o t w e b s t a r t e r ) 结 合 , 让 应 用 直 接 以 命 令 行 的 方 式 运 行 , 不 需 再 部 署 到 独 立 容 器 中 。 S p r i n g B o o t 的 出 现 可 以 说 是 S p r i n g 框 架 的 第 二 春 , 它 不 但 简 化 了 开 发 的 流 程 , 目 前 更 是 事 实 标 准 。 下 面 这 幅 图 可 以 看 出 相 同 功 能 的 S p r i n g 和 S p r i n g B o o t 的 代 码 实 现 对 比 。 A p a c h e R o c k e t M Q 是 一 款 是 业 界 知 名 的 分 布 式 消 息 和 流 处 理 中 间 件 , 它 主 要 功 能 是 消 息 分 发 、 异 步 解 耦 、 削 峰 填 谷 等 。 R o c k e t M Q 是 一 款 金 融 级 消 息 及 流 数 据 平 台 , R o c k e t M Q 在 交 易 、 支 付 链 路 上 用 的 很 多 , 主 要 是 对 消 息 链 路 质 量 要 求 非 常 高 的 场 景 , 能 够 支 持 万 亿 级 消 息 洪 峰 。 R o c k e t M Q 在 业 务 消 息 中 被 广 泛 应 用 , 并 衍 生 出 顺 序 消 息 、 事 务 消 息 、 延 迟 消 息 等 匹 配 各 类 业 务 场 景 的 特 殊 消 息 。 本 文 的 主 角 就 是 S p r i n g 和 R o c k e t M Q , 那 几 乎 每 个 J a v a 程 序 员 都 会 使 用 S p r i n g 框 架 与 支 持 丰 富 业 务 场 景 的 R o c k e t M Q 会 碰 撞 出 怎 么 样 的 火 花 ? 二 、 R o c k e t M Q 与 S p r i n g 的 碰 撞 在 介 绍 R o c k e t M Q 与 S p r i n g 故 事 之 前 , 不 得 不 提 到 S p r i n g 中 的 两 个 关 于 消 息 的 框 架 , S p r i n g M e s s a g i n g 和 S p r i n g C l o u d S t r e a m 。 它 们 都 能 够 与 S p r i n g B o o t 整 合 并 提 供 了 一 些 参 考 的 实 现 。 和 所 有 的 实 现 框 架 一 样 , 消 息 框 架 的 目 的 是 实 现 轻 量 级 的 消 息 驱 动 的 微 服 务 , 可 以 有 效 地 简 化 开 发 人 员 对 消 息 中 间 件 的 使 用 复 杂 度 , 让 系 统 开 发 人 员 可 以 有 更 多 的 精 力 关 注 于 核 心 业 务 逻 辑 的 处 理 。 1 . S p r i n g M e s s a g i n g S p r i n g M e s s a g i n g 是 S p r i n g F r a m e w o r k 4 中 添 加 的 模 块 , 是 S p r i n g 与 消 息 系 统 集 成 的 一 个 扩 展 性 的 支 持 。 它 实 现 了 从 基 于 J m s T e m p l a t e 的 简 单 的 使 用 J M S 接 口 到 异 步 接 收 消 息 的 一 整 套 完 整 的 基 础 架 构 , S p r i n g A M Q P 提 供 了 该 协 议 所 要 求 的 类 似 的 功 能 集 。 在 与 S p r i n g B o o t 的 集 成 后 , 它 拥 有 了 自 动 配 置 能 力 , 能 够 在 测 试 和 运 行 时 与 相 应 的 消 息 传 递 系 统 进 行 集 成 。 单 纯 对 于 客 户 端 而 言 , S p r i n g M e s s a g i n g 提 供 了 一 套 抽 象 的 A P I 或 者 说 是 约 定 的 标 准 , 对 消 息 发 送 端 和 消 息 接 收 端 的 模 式 进 行 规 定 , 比 如 消 息 M e s s a g i n g 对 应 的 模 型 就 包 括 一 个 消 息 体 P a y l o a d 和 消 息 头 H e a d e r 。 不 同 的 消 息 中 间 件 提 供 商 可 以 在 这 个 模 式 下 提 供 自 己 的 S p r i n g 实 现 : 在 消 息 发 送 端 需 要 实 现 的 是 一 个 X X X T e m p l a t e 形 式 的 J a v a B e a n , 结 合 S p r i n g B o o t 的 自 动 化 配 置 选 项 提 供 多 个 不 同 的 发 送 消 息 方 法 ; 在 消 息 的 消 费 端 是 一 个 X X X M e s s a g e L i s t e n e r 接 口 ( 实 现 方 式 通 常 会 使 用 一 个 注 解 来 声 明 一 个 消 息 驱 动 的 P O J O ) , 提 供 回 调 方 法 来 监 听 和 消 费 消 息 , 这 个 接 口 同 样 可 以 使 用 S p r i n g B o o t 的 自 动 化 选 项 和 一 些 定 制 化 的 属 性 。 在 A p a c h e R o c k e t M Q 生 态 中 , R o c k e t M Q S p r i n g B o o t S t a r t e r ( 下 文 简 称 R o c k e t M Q S p r i n g ) 就 是 一 个 支 持 S p r i n g M e s s a g i n g A P I 标 准 的 项 目 。 该 项 目 把 R o c k e t M Q 的 客 户 端 使 用 S p r i n g B o o t 的 方 式 进 行 了 封 装 , 可 以 让 用 户 通 过 简 单 的 a n n o t a t i o n 和 标 准 的 S p r i n g M e s s a g i n g A P I 编 写 代 码 来 进 行 消 息 的 发 送 和 消 费 , 也 支 持 扩 展 出 R o c k e t M Q 原 生 A P I 来 支 持 更 加 丰 富 的 消 息 类 型 。 在 R o c k e t M Q S p r i n g 毕 业 初 期 , R o c k e t M Q 社 区 同 学 请 S p r i n g 社 区 的 同 学 对 R o c k e t M Q S p r i n g 代 码 进 行 r e v i e w , 引 出 一 段 罗 美 琪 ( R o c k e t M Q ) 和 春 波 特 ( S p r i n g B o o t ) 故 事 的 佳 话 [ 1 ] , 著 名 S p r i n g 布 道 师 J o s h L o n g 向 国 外 同 学 介 绍 如 何 使 用 R o c k e t M Q S p r i n g 收 发 消 息 [ 2 ] 。 R o c k e t M Q S p r i n g 也 在 短 短 两 年 时 间 超 越 S p r i n g K a f k a 和 S p r i n g A M Q P ( 注 : 两 者 均 由 S p r i n g 社 区 维 护 ) , 成 为 S p r i n g M e s s a g i n g 生 态 中 最 活 跃 的 消 息 项 目 。 2 . S p r i n g C l o u d S t r e a m S p r i n g C l o u d S t r e a m 结 合 了 S p r i n g I n t e g r a t i o n 的 注 解 和 功 能 , 它 的 应 用 模 型 如 下 : S p r i n g C l o u d S t r e a m 框 架 中 提 供 一 个 独 立 的 应 用 内 核 , 它 通 过 输 入 ( @ I n p u t ) 和 输 出 ( @ O u t p u t ) 通 道 与 外 部 世 界 进 行 通 信 , 消 息 源 端 ( S o u r c e ) 通 过 输 入 通 道 发 送 消 息 , 消 费 目 标 端 ( S i n k ) 通 过 监 听 输 出 通 道 来 获 取 消 费 的 消 息 。 这 些 通 道 通 过 专 用 的 B i n d e r 实 现 与 外 部 代 理 连 接 。 开 发 人 员 的 代 码 只 需 要 针 对 应 用 内 核 提 供 的 固 定 的 接 口 和 注 解 方 式 进 行 编 程 , 而 不 需 要 关 心 运 行 时 具 体 的 B i n d e r 绑 定 的 消 息 中 间 件 。 在 运 行 时 , S p r i n g C l o u d S t r e a m 能 够 自 动 探 测 并 使 用 在 c l a s s p a t h 下 找 到 的 B i n d e r 。 这 样 开 发 人 员 可 以 轻 松 地 在 相 同 的 代 码 中 使 用 不 同 类 型 的 中 间 件 : 仅 仅 需 要 在 构 建 时 包 含 进 不 同 的 B i n d e r 。 在 更 加 复 杂 的 使 用 场 景 中 , 也 可 以 在 应 用 中 打 包 多 个 B i n d e r 并 让 它 自 己 选 择 B i n d e r , 甚 至 在 运 行 时 为 不 同 的 通 道 使 用 不 同 的 B i n d e r 。 B i n d e r 抽 象 使 得 S p r i n g C l o u d S t r e a m 应 用 可 以 灵 活 的 连 接 到 中 间 件 , 加 之 S p r i n g C l o u d S t r e a m 使 用 利 用 了 S p r i n g B o o t 的 灵 活 配 置 配 置 能 力 , 这 样 的 配 置 可 以 通 过 外 部 配 置 的 属 性 和 S p r i n g B o o t 支 持 的 任 何 形 式 来 提 供 ( 包 括 应 用 启 动 参 数 、 环 境 变 量 和 a p p l i c a t i o n . y m l 或 者 a p p l i c a t i o n . p r o p e r t i e s 文 件 ) , 部 署 人 员 可 以 在 运 行 时 动 态 选 择 通 道 连 接 d e s t i n a t i o n ( 例 如 , R o c k e t M Q 的 t o p i c 或 者 R a b b i t M Q 的 e x c h a n g e ) 。 S p r i n g C l o u d S t r e a m 屏 蔽 了 底 层 消 息 中 间 件 的 实 现 细 节 , 希 望 以 统 一 的 一 套 A P I 来 进 行 消 息 的 发 送 / 消 费 , 底 层 消 息 中 间 件 的 实 现 细 节 由 各 消 息 中 间 件 的 B i n d e r 完 成 。 S p r i n g 官 方 实 现 了 R a b b i t b i n d e r 和 K a f k a B i n d e r 。 S p r i n g C l o u d A l i b a b a 实 现 了 R o c k e t M Q B i n d e r [ 3 ] , 其 主 要 实 现 原 理 是 把 发 送 消 息 最 终 代 理 给 了 R o c k e t M Q S p r i n g 的 R o c k e t M Q T e m p l a t e , 在 消 费 端 则 内 部 会 启 动 R o c k e t M Q S p r i n g C o n s u m e r C o n t a i n e r 来 接 收 消 息 。 以 此 为 基 础 , S p r i n g C l o u d A l i b a b a 还 实 现 了 S p r i n g C l o u d B u s R o c k e t M Q , 用 户 可 以 使 用 R o c k e t M Q 作 为 S p r i n g C l o u d 体 系 内 的 消 息 总 线 , 来 连 接 分 布 式 系 统 的 所 有 节 点 。 通 过 S p r i n g C l o u d S t r e a m R o c k e t M Q B i n d e r , R o c k e t M Q 可 以 与 S p r i n g C l o u d 生 态 更 好 的 结 合 。 比 如 与 S p r i n g C l o u d D a t a F l o w 、 S p r i n g C l o u d F u n t i o n 结 合 , 让 R o c k e t M Q 可 以 在 S p r i n g 流 计 算 生 态 、 S e r v e r l e s s ( F a a S ) 项 目 中 被 使 用 。 如 今 S p r i n g C l o u d S t r e a m R o c k e t M Q B i n d e r 和 S p r i n g C l o u d B u s R o c k e t M Q 做 为 S p r i n g C l o u d A l i b a b a 的 实 现 已 登 陆 S p r i n g 的 官 网 [ 4 ] , S p r i n g C l o u d A l i b a b a 也 成 为 S p r i n g C l o u d 最 活 跃 的 实 现 。 三 、 如 何 在 S p r i n g 生 态 中 选 择 R o c k e t M Q 实 现 ? 通 过 介 绍 S p r i n g 中 的 消 息 框 架 , 介 绍 了 以 R o c k e t M Q 为 基 础 与 S p r i n g 消 息 框 架 结 合 的 几 个 项 目 , 主 要 是 R o c k e t M Q S p r i n g 、 S p r i n g C l o u d S t r e a m R o c k e t M Q B i n d e r 、 S p r i n g C l o u d B u s R o c k e t M Q 、 S p r i n g D a t a F l o w 和 S p r i n g C l o u d F u n c t i o n 。 它 们 之 间 的 关 系 可 以 如 下 图 表 示 。 如 何 在 实 际 业 务 开 发 中 选 择 相 应 项 目 进 行 使 用 ? 下 面 分 别 列 出 每 个 项 目 的 特 点 和 使 用 场 景 。 1 . R o c k e t M Q S p r i n g 特 点 : 作 为 起 步 依 赖 , 简 单 引 入 一 个 包 就 能 在 S p r i n g 生 态 用 到 R o c k e t M Q 客 户 端 的 所 有 功 能 。 利 用 了 大 量 自 动 配 置 和 注 解 简 化 了 编 程 模 型 , 并 且 支 持 S p r i n g M e s s a g i n g A P I 。 与 R o c k e t M Q 原 生 J a v a S D K 的 功 能 完 全 对 齐 。 使 用 场 景 : 适 合 在 S p r i n g B o o t 中 使 用 R o c k e t M Q 的 用 户 , 希 望 能 用 到 R o c k e t M Q 原 生 j a v a 客 户 端 的 所 有 功 能 , 并 通 过 S p r i n g 注 解 和 自 动 配 置 简 化 编 程 模 型 。 2 . S p r i n g C l o u d S t r e a m R o c k e t M Q B i n d e r 特 点 : 屏 蔽 底 层 M Q 实 现 细 节 , 上 层 S p r i n g C l o u d S t r e a m 的 A P I 是 统 一 的 。 如 果 想 从 K a f k a 切 到 R o c k e t M Q , 直 接 改 个 配 置 即 可 。 与 S p r i n g C l o u d 生 态 整 合 更 加 方 便 。 比 如 S p r i n g C l o u d D a t a F l o w , 这 上 面 的 流 计 算 都 是 基 于 S p r i n g C l o u d S t r e a m ; S p r i n g C l o u d B u s 消 息 总 线 内 部 也 是 用 的 S p r i n g C l o u d S t r e a m 。 S p r i n g C l o u d S t r e a m 提 供 的 注 解 , 编 程 体 验 都 是 非 常 棒 。 使 用 场 景 : 在 代 码 层 面 能 完 全 屏 蔽 底 层 消 息 中 间 件 的 用 户 , 并 且 希 望 能 项 目 能 更 好 的 接 入 S p r i n g C l o u d 生 态 ( S p r i n g C l o u d D a t a F l o w 、 S p r i n g C l o u d F u n t c i o n 等 ) 。 3 . S p r i n g C l o u d B u s R o c k e t M Q 特 点 : 将 R o c k e t M Q 作 为 事 件 的 “ 传 输 器 ” , 通 过 发 送 事 件 ( 消 息 ) 到 消 息 队 列 上 , 从 而 广 播 到 订 阅 该 事 件 ( 消 息 ) 的 所 有 节 点 上 , 完 成 事 件 的 分 发 和 通 知 。 使 用 场 景 : 在 S p r i n g 生 态 中 希 望 用 R o c k e t M Q 做 消 息 总 线 的 用 户 , 可 以 用 在 应 用 间 事 件 的 通 信 , 配 置 中 心 客 户 端 刷 新 等 场 景 。 4 . S p r i n g C l o u d D a t a F l o w 特 点 : 以 S o u r c e / P r o c e s s o r / S i n k 组 件 进 行 流 式 任 务 处 理 。 R o c k e t M Q 作 为 流 处 理 过 程 中 的 中 间 存 储 组 件 。 使 用 场 景 : 流 处 理 , 大 数 据 处 理 场 景 。 5 . S p r i n g C l o u d F u n c t i o n 特 点 : 消 息 的 消 费 / 生 产 / 处 理 都 是 一 次 函 数 调 用 , 融 合 J a v a 生 态 的 F u n c t i o n 模 型 。 使 用 场 景 : S e r v e r l e s s 场 景 。 本 文 整 体 介 绍 了 在 S p r i n g 生 态 中 接 入 R o c k e M Q 的 5 种 方 法 , 让 各 位 开 发 者 对 几 种 经 典 场 景 有 宏 观 的 了 解 。 后 续 会 有 专 栏 详 细 介 绍 上 述 各 个 项 目 的 具 体 使 用 方 法 和 应 用 场 景 , 真 正 地 在 S p r i n g 生 态 中 玩 转 R o c k e t M Q ! 在 S p r i n g 生 态 中 玩 转 R o c k e t M Q 系 列 教 程 现 已 登 陆 知 行 动 手 实 验 室 , 立 即 体 验 ! 移 动 端 同 学 , 需 要 在 P C 端 登 录 s t a r t . a l i y u n . c o m 进 行 体 验 。 相 关 链 接 : 活 动 推 荐 阿 里 云 基 于 A p a c h e R o c k e t M Q 构 建 的 企 业 级 产 品 消 息 队 列 R o c k e t M Q 5 . 0 版 现 开 启 活 动 : 1 、 新 用 户 首 次 购 买 包 年 包 月 , 即 可 享 受 全 系 列 8 5 折 优 惠 ! 了 解 活 动 详 情 : 查 看 全 部 文 章 精 彩 活 动 ) : ( ) } C o m m u n i t y O v e r C o d e A s i a 2 0 2 4 点 击 查 看 ) : ( ) } 「 大 师 课 」 深 度 剖 析 R o c k e t M Q 5 . 0 点 击 查 看 ) : ( ) } R o c k e t M Q S u m m i t 2 0 2 2 点 击 查 看 最 新 公 告 7 月 2 6 日 【 活 动 】 🔥 C o m m u n i t y O v e r C o d e A s i a 2 0 2 4 点 击 观 看 视 频 回 放 7 月 1 1 月 【 活 动 】 🔥 开 源 之 夏 2 0 2 4 A p a c h e R o c k e t M Q 项 目 开 发 火 热 进 行 中 6 月 8 月 【 活 动 】 🔥 2 0 2 4 天 池 云 原 生 编 程 挑 战 赛 用 通 义 灵 码 参 与 A p a c h e R o c k e t M Q 开 源 贡 献 热 门 教 程 关 注 我 们 A B O U T U S A p a c h e R o c k e t M Q 事 件 驱 动 架 构 全 景 图 微 服 务 H i g r e s s ⼀ 个 遵 循 开 源 I n g r e s s / G a t e w a y A P I 标 准 , 提 供 流 量 调 度 、 服 务 治 理 、 安 全 防 护 三 合 ⼀ 的 高 集 成 、 易 使 用 、 易 扩 展 、 热 更 新 的 下 ⼀ 代 云 原 生 网 关 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a l i b a b a / h i g r e s s 0 0 开 源 官 网 : h t t p s : / / h i g r e s s . i o / D u b b o A p a c h e D u b b o 是 ⼀ 款 微 服 务 框 架 , 为 ⼤ 规 模 微 服 务 实 践 提 供 ⾼ 性 能 R P C 通 信 、 流 量 治 理 、 可 观 测 性 等 解 决 ⽅ 案 , 涵 盖 J a v a 、 G o l a n g 等 多 种 语 ⾔ S D K 实 现 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a p a c h e / d u b b o 0 0 开 源 官 网 : h t t p s : / / d u b b o . a p a c h e . o r g / S e n t i n e l S e n t i n e l 是 ⼀ 款 面 向 分 布 式 、 多 语 言 异 构 化 服 务 架 构 的 流 量 治 理 组 件 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a l i b a b a / S e n t i n e l 0 0 开 源 官 网 : h t t p s : / / s e n t i n e l g u a r d . i o / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / s t a r t . a l i y u n . c o m / S e a t a S e a t a 是 ⼀ 款 开 源 的 分 布 式 事 务 解 决 方 案 , 致 力 于 在 微 服 务 架 构 下 提 供 高 性 能 和 简 单 易 用 的 分 布 式 事 务 服 务 。 G i t h u b : h t t p s : / / g i t h u b . c o m / s e a t a / s e a t a 0 0 开 源 官 网 : h t t p s : / / s e a t a . i o / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / s t a r t . a l i y u n . c o m / S p r i n g C l o u d 一 站 式 的 分 布 式 应 用 开 发 框 架 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a l i b a b a / s p r i n g c l o u d a l i b a b a 0 0 开 源 官 网 : h t t p s : / / s c a . a l i y u n . c o m / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / s t a r t . a l i y u n . c o m / N a c o s ⼀ 个 更 易 于 构 建 云 原 生 应 用 的 动 态 服 务 发 现 、 配 置 管 理 和 服 务 管 理 平 台 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a l i b a b a / n a c o s 0 0 开 源 官 网 : h t t p s : / / n a c o s . i o / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / s t a r t . a l i y u n . c o m / 物 联 网 家 电 汽 车 穿 戴 设 备 充 电 桩 工 业 设 备 手 机 事 件 驱 动 架 构 平 台 R a b b i t M Q R a b b i t M Q ⼀ 个 更 易 于 构 建 云 原 生 应 用 的 动 态 服 务 发 现 、 配 置 管 理 和 服 务 管 理 平 台 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / a m q p K a f k a K a f k a 广 泛 用 于 日 志 收 集 、 监 控 数 据 聚 合 、 流 式 数 据 处 理 、 在 线 和 离 线 分 析 等 场 景 的 分 布 式 消 息 队 列 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / k a f k a E v e n t B r i d g e E v e n t B r i d g e E v e n t B r i d g e 致 力 于 帮 助 用 户 构 建 高 可 靠 、 低 耦 合 、 高 性 能 的 事 件 驱 动 架 构 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a p a c h e / r o c k e t m q e v e n t b r i d g e 0 0 开 源 官 网 : h t t p s : / / r o c k e t m q . a p a c h e . o r g / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / a l i w a r e / e v e n t b r i d g e M Q T T M Q T T 针 对 I o T 类 终 端 设 备 消 息 , 通 过 M Q T T 、 W e b S o c k e t 等 协 议 连 接 端 云 之 间 的 双 向 通 信 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a p a c h e / r o c k e t m q m q t t 0 0 开 源 官 网 : h t t p s : / / r o c k e t m q . a p a c h e . o r g / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / m q 4 i o t R o c k e t M Q R o c k e t M Q 云 原 生 “ 消 息 、 事 件 、 流 ” 实 时 数 据 处 理 平 台 , 覆 盖 云 边 端 ⼀ 体 化 数 据 处 理 场 景 。 G i t h u b : h t t p s : / / g i t h u b . c o m / a p a c h e / r o c k e t m q 0 0 开 源 官 网 : h t t p s : / / r o c k e t m q . a p a c h e . o r g / 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / r o c k e t m q M N S M N S M N S 是 一 款 易 集 成 、 高 并 发 、 可 弹 性 扩 展 的 轻 量 消 息 队 列 服 务 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / m n s A p a c h e R o c k e t M Q a s C o r e 计 算 模 型 服 务 模 型 服 务 通 过 灵 活 、 易 用 的 模 型 A P I 服 务 , 让 A I 开 发 者 使 用 各 种 模 态 模 型 的 能 力 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / b a i l i a n 函 数 计 算 函 数 计 算 事 件 驱 动 的 全 托 管 S e r v e r l e s s 计 算 服 务 , 只 需 编 写 上 传 代 码 , 即 可 以 弹 性 、 可 靠 的 方 式 运 行 代 码 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / f c 容 器 容 器 基 于 容 器 编 排 引 擎 K u b e r n e t e s 对 容 器 化 应 用 进 行 自 动 化 部 署 、 扩 缩 和 全 生 命 周 期 管 理 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / k u b e r n e t e s 存 储 对 象 存 储 对 象 存 储 以 非 结 构 化 格 式 存 储 和 管 理 数 据 , 如 照 片 、 视 频 、 电 子 邮 件 、 网 页 、 传 感 器 数 据 和 音 频 文 件 等 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / o s s 数 据 库 数 据 库 采 用 关 系 模 型 来 组 织 数 据 , 以 行 列 形 式 存 储 数 据 , 支 持 对 结 构 化 数 据 的 复 杂 查 询 , 同 时 保 持 数 据 的 完 整 性 和 一 致 性 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / p o l a r d b / m y s q l N o S Q L N o S Q L 非 关 系 型 数 据 库 , 采 用 不 同 于 关 系 表 的 格 式 存 储 数 据 , 广 泛 应 用 于 实 时 W e b 应 用 和 大 数 据 等 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / r e d i s 分 析 F l i n k F l i n k 实 时 分 布 式 的 大 数 据 处 理 引 擎 , 支 持 数 据 流 和 批 量 数 据 的 统 一 处 理 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / b i g d a t a / s c S p a r k S p a r k 大 规 模 数 据 并 行 处 理 引 擎 , 对 数 据 进 行 协 处 理 、 流 式 处 理 、 交 互 式 分 析 等 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / e m a p r e d u c e E l a s t i c S e a r c h E l a s t i c S e a r c h 实 时 分 布 式 的 搜 索 与 分 析 引 擎 , 支 持 各 种 类 型 、 规 模 的 数 据 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / b i g d a t a / e l a s t i c s e a r c h 事 件 云 服 务 器 云 服 务 器 I a a S 级 别 云 计 算 服 务 , 实 现 计 算 资 源 的 即 开 即 用 和 弹 性 伸 缩 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / e c s 对 象 存 储 对 象 存 储 以 非 结 构 化 格 式 存 储 和 管 理 数 据 , 如 照 片 、 视 频 、 电 子 邮 件 、 网 页 、 传 感 器 数 据 和 音 频 文 件 等 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / o s s 云 监 控 云 监 控 针 对 云 资 源 和 互 联 网 应 用 进 行 监 控 的 服 务 。 云 服 务 ( 开 箱 即 用 ) : h t t p s : / / w w w . a l i y u n . c o m / p r o d u c t / j i a n k o n g S a a S 事 件 通 知 语 音 短 信 邮 箱 移 动 推 送 产 品 特 点 为 什 么 学 习 R o c k e t M Q 云 原 生 生 于 云 , 长 于 云 , 无 限 弹 性 扩 缩 , K 8 S 友 好 高 吞 吐 万 亿 级 吞 吐 保 证 , 同 时 满 足 微 服 务 于 大 数 据 场 景 流 处 理 提 供 轻 量 、 高 扩 展 、 高 性 能 和 丰 富 功 能 的 流 计 算 引 擎 金 融 级 金 融 级 的 稳 定 性 , 广 泛 用 于 交 易 核 心 链 路 架 构 极 简 零 外 部 依 赖 , S h a r e d n o t h i n g 架 构 生 态 友 好 无 缝 对 接 微 服 务 、 实 时 计 算 、 数 据 湖 等 周 边 生 态 愿 景 R o c k e t M Q 自 2 0 1 2 年 诞 生 于 阿 里 巴 巴 , 服 务 于 淘 宝 等 核 心 交 易 系 统 , 历 经 多 次 双 十 一 万 亿 级 数 据 洪 峰 稳 定 性 验 证 , 至 今 已 有 十 余 年 发 展 历 程 。 R o c k e t M Q 致 力 于 构 建 的 低 延 迟 、 高 并 发 、 高 可 用 、 高 可 靠 的 分 布 式 “ 消 息 、 事 件 、 流 ” 统 一 处 理 平 台 , 覆 盖 云 边 端 ⼀ 体 化 数 据 处 理 场 景 , 帮 助 企 业 和 开 发 者 在 智 能 化 时 代 , 轻 松 构 建 事 件 驱 动 架 构 的 云 原 生 应 用 。 G I T H U B 资 源 电 子 书 云 服 务 浙 公 网 安 备 3 3 0 1 1 0 0 2 0 1 7 0 5 5 号 浙 I C P 备 1 2 0 2 2 3 2 7 号 1 1 2 0
站点概括关于rocketmq-learning.com说明:
rocketmq-learning.com由网友主动性提交被GOSL整理收录的,GOSL仅提供rocketmq-learning.com的基础信息并免费向大众网友展示,rocketmq-learning.com的是IP地址:- 地址:-,rocketmq-learning.com的百度权重为0、百度手机权重为0、百度收录为0条、360收录为0条、搜狗收录为0条、谷歌收录为0条、百度来访流量大约在-之间、百度手机端来访流量大约在-之间、rocketmq-learning.com的备案号是-、备案人叫-、被百度收录的关键词有0个、手机端关键词有0个、该站点迄今为止已经创建未知。
内容声明:1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违规信息,如您发现违规内容,请联系我们进行清除处理!
4、本文地址:https://www.gosl.cn/sousuodh/727b702c31fd41f4c35b.html,复制请保留版权链接!
深圳市炜安达研磨设备有限公司是一家专业研发生产各种平面研磨机,平面抛光机,双面抛光机,双端面磨床,五轴抛光机,环保手动抛光机,扫光机,扫边机,海绵砂,研磨盘,研磨液,3d曲面抛光机及其配套产品的公司。咨询电话:0755-29377048
宜兴市豪丰五金塑料制品有限公司专业生产多种规格无锡、苏州、常州纸管、宜兴工业纸管、宜兴打包带纸管、纸筒、纸芯、面料纸管、绕线纸管、胶带纸管、包装纸管、收银纸纸管、缠绕膜纸管等纸质管材。
为您提供经典美文、优美散文、励志正能量实用好文,同时还有优质课件教案、中考高考试题、高考作文、中考作文指导、作文素材以及诗歌散文等学习资源。
量子科技成立于2019年,总部位于拥有“天府之国”之称的成都高新技术产业开发区,主要从事国际金融衍生品人工智能交易软件开发。公司股东和核心管理团队深耕衍生品量化交易数年,配合默契,从最初的工作室到如今的规模化发展,团队一直秉持“不忘初心,不畏艰难”的创业精神,致力于金融前沿科技的探索与创新,成绩斐然,获得了全球广大投资者的肯定。
上海睿品印刷制品有限公司
四川省川鼓风机有限责任公司:是由原属全民所有制分支机构发展起来的高温风机生产厂家,精心设计的耐高温鼓风机承受的温度非常高,即便是罗茨式鼓风机,也能承受进口温度为300℃的高温,本公司已经逐步成为高温锅炉窑尾引风机的专业制造公司,所用技术已超过国内同行业的水准,欢迎广大客户前来洽谈惠顾!
脱泡机,真空搅拌机,led真空脱泡机,胶水真空脱泡机,硅胶真空脱泡机,利用高速旋转产生的离心力将胶水中的空气从容器中分离出来,可以有效防止空点。脱泡机,真空搅拌机,led真空脱泡机,胶水真空脱泡机,硅胶真空脱泡机,是点胶制程中必不可少的辅助设备。
司仪游戏网(44e.cn)每天分享一些游戏的操作攻略技巧,网络游戏、单机游戏注意事项,帮助您认识更多游戏的世界。
三款超值之选,MGES5、银河E5与深蓝S05——家用市场的超值选择解析随着新能源汽车市场的蓬勃发展,越来越多的品牌开始在各个细分市场展开激烈的竞争,其中,主打家用市场的十万级紧凑SUV领域更是成为各大品牌关注的焦点,近期,三款新车接连上市,它们分别是MGES5、银河E5和深蓝S05,这三款车型都在价格、配置等方面有着各自的优势,成为...。
最新资讯 2025-01-28 13:41:26
澎湃新闻除夕24小时记录,乙巳蛇年的温暖回家路一年的辛勤付出,一年的风雨兼程,只为了一年一度的这一天——除夕,这一天,无论身处何方,无论忙碌于何处,我们都在朝着同一个目标奔赴,家,此刻的忙碌,都是为了更好的日子,更真切的喜乐安康,下午3点,铁路上海虹桥站的售票员游园依旧坚守岗位,她的手速飞快,如同疾风闪电,为旅客提供售票服务,此前,她...。
最新资讯 2025-01-28 15:57:16
星纪元ET荣膺第五届汽车风云盛典风云车大奖,以卓越科技引领高端新能源市场迈向全新阶段在璀璨的灯光下,北京于1月27日晚见证了汽车行业的一大盛事——由中央广播电视总台主办、总台财经节目中心特别策划的第五届汽车风云盛典在此隆重揭幕,备受瞩目的颁奖典礼上,一场关于智能科技与汽车未来的精彩对话如火如荼地展开,其中,奇瑞汽车股份有限公司的星纪元...。
最新资讯 2025-01-28 18:12:26
小狮子的大舞台,传承的力量与春晚上的闪耀在华夏大地的各个角落,春节的氛围总是洋溢着浓厚的喜庆和无尽的温暖,在这个节日里,舞龙舞狮无疑是民间艺术的一道独特风景线,在这道风景线的背后,还有着令人动容的故事,例如那只令人难以忘怀的小狮子,和与它紧密相关的小女孩林熙悦的故事,去年春节,广东女孩林熙悦在路边独自练习舞狮的情景,像一股清流深深打动...。
最新资讯 2025-01-28 21:22:33
英超赛场再起波澜,阿森纳后卫斯凯利争议红牌事件直播吧1月29日英超赛场再现风云,一场备受瞩目的赛事上演在阿森纳和狼队之间,在第23轮的这场较量中,比赛的分界线早已变得模糊,一记争议性的红牌成为了全场的焦点,阿森纳后卫斯凯利在比赛的第43分钟遭遇不幸,被裁判直接红牌罚下,引发广泛争议,当日比赛的紧张气氛,空气中弥漫的冲突气息,仿佛预示着...。
最新资讯 2025-01-29 07:37:46
广东男篮的新领袖,徐杰的崛起与CBA的新篇章随着CBA第二阶段的落幕,广东男篮再次回到八强的行列,尽管与赛季初期的排名相比变化不大,但球队在质量上有了明显的提升,与前面几个对手的成绩差距逐渐缩小,冠军的希望之火仍在燃烧,在这一阶段中,表现最为亮眼的是球员徐杰,他已成为杜锋最为依赖的核心,俨然是队内的新一哥,一、徐杰的巅峰表现本赛季至今...。
最新资讯 2025-01-29 11:37:29
AC米兰迎战萨格勒布迪纳摩,托莫里的决心与队伍的坚韧直播吧1月30日讯凌晨4点,欧洲冠军联赛联赛阶段的第8轮激烈碰撞即将上演,AC米兰将在客场挑战萨格勒布迪纳摩,赛前,红黑军团的坚石后卫托莫里接受了媒体采访,展现出了AC米兰将士的坚定决心和战斗精神,对于这场比赛的重要性,托莫里向米兰TV表示,我们深知这场赛事的重要性,每一个积分、每...。
最新资讯 2025-01-30 03:55:03
黄山日报报道,黟县宏村镇政府推出宠客福利,春节期间政府机关食堂向游客开放据黄山日报微信公众号报道,春节期间,安徽省黄山市黟县宏村镇推出了一项特殊的宠客福利,政府机关食堂面向所有来宏村的游客开放,这一举措旨在让游客在旅行中感受到更多的温暖和关怀,同时也展示了宏村镇政府对旅游业的重视和支持,一、政府食堂开放,让游客品尝徽州特色美食春节期间...。
最新资讯 2025-01-30 08:59:32
Ulefone全新Armor28Ultra系列三防手机即将发布,强悍配置引领户外科技新风尚IT之家讯,在一波科技新品接连发布的新年伊始,Ulefone公司再度引发市场热议,近日,该公司宣布旗下全新Armor28Ultra系列三防手机,Armor28Ultra,Armor28UltraThermalVersion,即将在下月海外发布,预...。
最新资讯 2025-01-31 17:05:21