十一:对微服务调用链监控的理解

目录

1. 简介

微服务的调用链监控是解决微服务的复杂性带来的一系列问题的强有效手段之一,从一下几个方面来先理解微服务调用链监控相关:

  1. 简介
  2. 什么是调用链
  3. 为什么要监控调用链
  4. 要监控哪些方面
  5. 调用链监控原理是什么
    5.1 监控原理图
  6. 有什么技术解决方案
    6.1 解决方案
    6.2 对比
  7. 监控技术选型如何选择

2. 什么是调用链

一个业务功能可能需要多个服务协作才能实现,一个请求到达服务A,服务A需要依赖服务B,服务B又依赖服务C,甚至C仍需依赖其他服务,形成一个调用链条,即调用链。

3. 为什么要监控调用链

服务复杂性

上图传递了一个信息,就是微服务的复杂性

  • 出现问题后,定位困难,需要对整个调用链路有个完善的监控
  • 链路复杂,需要清晰的链路图谱反映服务之间的依赖、调用关系
  • 整体系统性能及运行情况,需要明确的体现,才能根据实际情况调整资源

4. 要监控哪些方面

  • 图形化展示整个调用链路
  • 系统的性能指标
  • 健康状况
  • 基础告警

5. 调用链监控原理是什么

5.1 监控原理图

调用链监控图

  • RootSpan会生成一个Trace id以及parent span id
  • Trace id是整个调用链的监控跟踪ID
  • span是服务中一次请求以及对应响应这个span的id

类比于Chrome加载网页时,加载各种资源消耗时间:
辅助理解

6. 有什么技术解决方案

6.1 解决方案

  • CAT (Central Application Tracking):由吴其敏(前大众点评首席架构师,现携程架构负责人)主导设计基于Java开发打造的实时应用监控平台,为大众点评网提供了全面的监控服务和决策支持。
  • Zipkin:分布式跟踪系统;它可以帮助收集时间数据,解决在microservice架构下的延迟问题;它管理这些数据的收集和查找;Zipkin的设计是基于谷歌的Google Dapper论文。
  • Pinpoint:Pinpoint is an open source APM (Application Performance Management) tool for large-scale distributed systems written in Java. http://naver.github.io/pinpoint/

6.2 对比

维度CATZipkinPinPoint
调用链可视化
报表非常丰富
ServerMap简单依赖图简单
埋点方式侵入侵入入侵入,字节码增强
Heartbeat支持
Metric支持
Java .Net客户端只有Java
Dashboard支持中文
社区支持好,文档丰富好,文档一般,暂无中文一般,文档缺,无中文
国内案例携程、点评、陆金所、猎聘网京东、阿里不开源暂无
源头祖先eBay CAL(Centrialized Application Logging)Google DapperGoogle Dapper

7. 监控技术选型如何选择

未实际应用,仅列出自己的选择标准:CAT

  • 文档:CAT
  • 社区活跃度:CAT
  • 中文支持:CAT
  • 调用链可视化:都具备
  • 心跳链接:CAT、PinPoint
  • Metric:CAT
  • 报表:都有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值