赵成的运维体系管理课
赵成
《进化: 运维技术变革与实践探索》作者
37256 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
开篇词 (1讲)
效率和稳定性最佳实践 (20讲)
赵成的运维体系管理课
15
15
1.0x
00:00/00:00
登录|注册

26 | 稳定性实践:全链路跟踪系统,技术运营能力的体现

今天我们来分享全链路跟踪系统建设方面的内容。我们知道,随着微服务和分布式架构的引入,各类应用和基础组件形成了网状的分布式调用关系,这种复杂的调用关系就大大增加了问题定位、瓶颈分析、容量评估以及限流降级等稳定性保障工作的难度,如我们常见的调用网状关系。
正是这样的背景,催生了分布式链路跟踪,也叫全链路跟踪的解决方案。
关于这一块的技术解决方案,在 Google 的 Dapper 论文发表之后,近些年业界已经有非常多且非常成熟的实践经验和开源产品。
比如阿里的鹰眼系统,就是全链路跟踪系统在国内的最佳实践;再比如美团点评的 CAT 分布式监控系统,也是从产品实践中逐步开源出来,在业界已经得到了非常广泛的应用;还有一些独立的开源产品,比如国内分布式监控技术专家吴晟创建的 Skywalking 项目,也是非常优秀的产品,而且也有比较广泛的应用。
除此之外,还有大量优秀的商业产品,这类产品通常叫 APM,应用性能管理系统,比如国内的听云、博瑞、OneAPM 等等,他们在产品化方面做的会更完善,在很多场景下可以非常方便地落地应用。
介绍上述这些产品,主要还是想说明,当前在分布式或全链路跟踪监控这个领域,无论是在技术还是产品层面都已经相对成熟,我们完全可以通过对这些产品的调研来选择适合自己的解决方案。
蘑菇街在这块也是自研了一套体系,但是技术方案和思路上跟上述这些开源或商业产品都很相似,所以技术层面我就不再做详细赘述。
如果想深入了解相关内容,一方面可以在网上找到非常多的资料,甚至是去阅读源码;另一方面还是推荐极客时间上陈皓老师的《左耳听风》专栏和杨波老师的《微服务架构核心 20 讲》,两位都是骨灰级的微服务和分布式架构专家,他们在技术层面的分享会更有深度和针对性。

全链路跟踪系统在技术运营层面的应用

接下来,主要分享我们利用全链路跟踪系统在技术运营层面做的一些事情,这里提到的运营,就是应用在线上运行时,我们根据应用运行数据所做的运行维护工作,这里我们会更加强调数据的作用。
同时,这里的一个核心技术点就是 TraceID,当请求从接入层进来时,这个 TraceID 就要被创建出来;或者是通过 Nginx 插件方式创建放到 http 的 header 里面;或者是通过 RPC 服务化框架生成。然后在后续的请求中,这个字段会通过框架自动传递到下一个调用方,而不需要业务考虑如何处理这个核心字段。
有了这个 TraceID,我们就可以将一个完整的请求链路给串联起来了,这也是后面场景化应用的基础。下面我们就一起来看会有哪些具体的技术运营场景。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《赵成的运维体系管理课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 天草二十六
    透传是让框架去做,不要在程序里硬编码。 如果是有h5或者客户端的请求,让在http头部传入traceId,否则自己生成traceId. 对于spring cloud体系,极力推荐sleuth,可以帮你做到,免去代码的硬耦合。

    作者回复: 是的,要做到无侵入。

    3
  • 松花皮蛋me
    老师如果有多级cdn缓存节点链路跟踪怎么做?

    作者回复: 如果是http请求的,我的理解可以在消息头上增加唯一标示,要求cdn平台在传递请求时,透传头信息

    2
  • 芝士老爹
    老师,想请教下:Java应用,使用线程池+异步的方式,怎么传递TraceID? 我们现在使用的框架不支持,想改造的话,思路在哪儿?
  • 仔仔
    但是在很多公司里面,其实开发并不愿意取修改代码支持traceid的传递,真对这种情况,如何从运维层面取实现对应的分布式调用跟踪?
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部