没有合适的资源?快使用搜索试试~ 我知道了~
[] - 2023-06-29 主流微服务全链路监控系统实战.pdf
需积分: 0 0 下载量 20 浏览量
2023-12-11
21:39:39
上传
评论
收藏 1.11MB PDF 举报
温馨提示
试读
29页
互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能
资源推荐
资源详情
资源评论
主流微服务全链路监控系统实战
随 着 微 服 务 架 构 的 流 行 , 服 务 按 照 不 同 的 维 度 进 行 拆 分
, 一 次 请 求 往 往 需 要 涉 及 到 多 个 服 务 。 互 联 网 应 用 构 建 在 不 同 的
软 件 模 块 集 上
, 这 些 软 件 模 块 , 有 可 能 是 由 不 同 的 团 队 开 发 、 可 能 使 用 不 同 的
编 程 语 言 来 实 现 、 有 可 能 布 在 了 几 千 台 服 务 器 , 横 跨 多 个 不 同 的
数 据 中 心
。 因 此 , 就 需 要 一 些 可 以 帮 助 理 解 系 统 行 为 、 用 于 分 析 性 能 问 题
的 工 具 , 以 便 发 生 故 障 的 时 候 , 能 够 快 速 定 位 和 解 决 问 题 。
全 链 路 监 控 组 件 就 在 这 样 的 问 题 背 景 下 产 生 了 。 最 出 名 的 是 谷 歌
公 开 的 论 文 提 到 的 G o o g l e
D a p p e r 。 想 要 在 这 个 上 下 文 中 理 解 分 布 式 系 统 的 行 为 , 就 需 要
监 控 那 些 横 跨 了 不 同 的 应 用 、 不 同 的 服 务 器 之 间 的 关 联 动 作 。
所 以 , 在 复 杂 的 微 服 务 架 构 系 统 中 , 几 乎 每 一 个 前 端 请 求 都 会 形
成 一 个 复 杂 的 分 布 式 服 务 调 用 链 路
。 一 个 请 求 完 整 调 用 链 可 能 如 下 图 所 示 :
图片
一 个 请 求 完 整 调 用 链
那 么 在 业 务 规 模 不 断 增 大 、 服 务 不 断 增 多 以 及 频 繁 变 更 的 情 况 下
, 面 对 复 杂 的 调 用 链 路 就 带 来 一 系 列 问 题 :
1.如何快速发现问题?
2.如何判断故障影响范围?
3.如何梳理服务依赖以及依赖的合理性?
4.如何分析链路性能问题以及实时容量规划?
同 时 我 们 会 关 注 在 请 求 处 理 期 间 各 个 调 用 的 各 项 性 能 指 标
, 比 如 : 吞 吐 量 ( T P S ) 、 响 应 时 间 及 错 误 记 录 等 。
1.吞吐量 ,根据拓扑可计算相应组件、平台、物理设备的实时吞吐量。
2.响应时间 ,包括整体调用的响应时间和各个服务的响应时间等。
3.错误记录 ,根据服务返回统计单位时间异常次数。
全 链 路 性 能 监 控 从 整 体 维 度 到 局 部 维 度 展 示 各 项 指 标
, 将 跨 应 用 的 所 有 调 用 链 性 能 信 息 集 中 展 现 , 可 方 便 度 量 整 体 和
局 部 性 能 , 并 且 方 便 找 到 故 障 产 生 的 源 头 , 生 产 上 可 极 大 缩 短 故
障 排 除 时 间 。
有 了 全 链 路 监 控 工 具 , 我 们 能 够 达 到 :
1.请求链路追踪,故障快速定位
:可以通过调用链结合业务日志快速定位错误信息。
2.可视化 :各个阶段耗时,进行性能分析。
3.依赖优化 :各个调用环节的可用性、梳理服务依赖关系以及优化。
4.数据分析,优化链路
:可以得到用户的行为路径,汇总分析应用在很多业务场景。
1 目标要求
如 上 所 述 , 那 么 我 们 选 择 全 链 路 监 控 组 件 有 哪 些 目 标 要 求 呢 ? G o
o g l e D a p p e r 中 也 提 到 了 , 总 结 如 下 :
1 . 探 针 的 性 能 消 耗
A P M 组 件 服 务 的 影 响 应 该 做 到 足 够 小 。 服 务 调 用 埋 点 本 身 会
带 来 性 能 损 耗 , 这 就 需 要 调 用 跟 踪 的 低 损 耗 , 实 际 中 还 会 通 过
配 置 采 样 率 的 方 式 , 选 择 一 部 分 请 求 去 分 析 请 求 路 径
。 在 一 些 高 度 优 化 过 的 服 务 , 即 使 一 点 点 损 耗 也 会 很 容 易 察 觉
到 , 而 且 有 可 能 迫 使 在 线 服 务 的 部 署 团 队 不 得 不 将 跟 踪 系 统 关
停 。
2 . 代 码 的 侵 入 性
即 也 作 为 业 务 组 件 , 应 当 尽 可 能 少 入 侵 或 者 无 入 侵 其 他 业 务 系
统 , 对 于 使 用 方 透 明 , 减 少 开 发 人 员 的 负 担 。
对 于 应 用 的 程 序 员 来 说 , 是 不 需 要 知 道 有 跟 踪 系 统 这 回 事 的 。
如 果 一 个 跟 踪 系 统 想 生 效 , 就 必 须 需 要 依 赖 应 用 的 开 发 者 主 动
配 合 , 那 么 这 个 跟 踪 系 统 也 太 脆 弱 了 , 往 往 由 于 跟 踪 系 统 在 应
用 中 植 入 代 码 的 b u g 或 疏 忽 导 致 应 用 出 问 题 , 这 样 才 是 无 法 满
足 对 跟 踪 系 统 “ 无 所 不 在 的 部 署 ” 这 个 需 求 。
3 . 可 扩 展 性
一 个 优 秀 的 调 用 跟 踪 系 统 必 须 支 持 分 布 式 部 署 , 具 备 良 好 的 可
扩 展 性 。 能 够 支 持 的 组 件 越 多 当 然 越 好
。 或 者 提 供 便 捷 的 插 件 开 发 A P I , 对 于 一 些 没 有 监 控 到 的 组 件
, 应 用 开 发 者 也 可 以 自 行 扩 展 。
4 . 数 据 的 分 析
数 据 的 分 析 要 快 , 分 析 的 维 度 尽 可 能 多
。 跟 踪 系 统 能 提 供 足 够 快 的 信 息 反 馈 , 就 可 以 对 生 产 环 境 下 的
异 常 状 况 做 出 快 速 反 应 。 分 析 的 全 面 , 能 够 避 免 二 次 开 发 。
2 功能模块
一 般 的 全 链 路 监 控 系 统 , 大 致 可 分 为 四 大 功 能 模 块 :
1 . 埋 点 与 生 成 日 志
埋 点 即 系 统 在 当 前 节 点 的 上 下 文 信 息 , 可 以 分 为
客 户 端 埋 点 、 服 务 端 埋 点 , 以 及 客 户 端 和 服 务 端 双 向 型 埋 点
。 埋 点 日 志 通 常 要 包 含 以 下 内 容 t r a c e I d 、 s p a n I d 、 调 用 的
开 始 时 间 , 协 议 类 型 、 调 用 方 i p 和 端 口 , 请 求 的 服 务 名 、 调 用
耗 时 , 调 用 结 果 , 异 常 信 息 等 , 同 时 预 留 可 扩 展 字 段 , 为 下 一
步 扩 展 做 准 备 ;
不 能 造 成 性 能 负 担
: 一 个 价 值 未 被 验 证 , 却 会 影 响 性 能 的 东 西 , 是 很 难 在 公 司 推
广 的 ! 因 为 要 写 l o g , 业 务 Q P S 越 高 , 性 能 影 响 越 重 。 通 过 采
样 和 异 步 l o g 解 决 。
2 . 收 集 和 存 储 日 志
主 要 支 持 分 布 式 日 志 采 集 的 方 案 , 同 时 增 加 M Q 作 为 缓 冲 ;
3.
a. 每个机器上有一个 deamon
做日志收集,业务进程把自己的Trace发到daemon,daemon把收
集Trace往上一级发送;
b. 多级的collector ,类似pub/sub架构,可以负载均衡;
c. 对聚合的数据进行 实时分析和离线存储 ;
d. 离线分析 需要将同一条调用链的日志汇总在一起;
4 . 分 析 和 统 计 调 用 链 路 数 据 , 以 及 时 效 性
调 用 链 跟 踪 分 析
: 把 同 一 T r a c e I D 的 S p a n 收 集 起 来 , 按 时 间 排 序 就 是 t i m e l i
n e 。 把 P a r e n t I D 串 起 来 就 是 调 用 栈 。
抛 异 常 或 者 超 时 , 在 日 志 里 打 印 T r a c e I D 。 利 用 T r a c e I D 查
询 调 用 链 情 况 , 定 位 问 题 。
依 赖 度 量 :
离 线 分 析
: 按 T r a c e I D 汇 总 , 通 过 S p a n 的 I D 和 P a r e n t I D 还 原 调 用 关
系 , 分 析 链 路 形 态 。
实 时 分 析
: 对 单 条 日 志 直 接 分 析 , 不 做 汇 总 , 重 组 。 得 到 当 前 Q P S , 延
迟 。
5.
a. 强依赖 :调用失败会直接中断主流程
b. 高度依赖 :一次链路中调用某个依赖的几率高
c. 频繁依赖 :一次链路调用同一个依赖的次数多
6 . 展 现 以 及 决 策 支 持
3 Google Dapper
3.1 Span
基 本 工 作 单 元
, 一 次 链 路 调 用 ( 可 以 是 R P C , D B 等 没 有 特 定 的 限 制 ) 创 建 一
剩余28页未读,继续阅读
资源评论
毕业小助手
- 粉丝: 2032
- 资源: 1712
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 驱动代码驱动代码驱动代码驱动代码
- SVID_20240523_141155_1.mp4
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功