链路追踪-微服务小白入门(6)

背景

  • 什么是链路追踪

随着微服务分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如分布式服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络。在服务能力提升的同时,复杂的网络结构也使问题定位更加困难。在一个请求在经过诸多服务过程中,出现了某一个调用失败的情况,查询具体的异常由哪一个服务引起的就变得十分抓狂,问题定位和处理效率是也会非常低。

分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。

  • 为什么要使用链路追踪

链路追踪为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。

skywalking 链路追踪

SkyWalking是一个可观测性分析平台(Observability Analysis Platform 简称OAP)和应用性能管理系统(Application Performance Management 简称 APM)。

提供分布式链路追踪,服务网格(Service Mesh)遥测分析,度量(Metric)聚合和可视化一体化解决方案。

SkyWalking 特点

  • 多语言自动探针,java,.Net Code ,Node.Js
  • 多监控手段,语言探针和Service Mesh
  • 轻量高效,不需要额外搭建大数据平台
  • 模块化架构,UI ,存储《集群管理多种机制可选》
  • 支持警告
  • 优秀的可视化效果。

下面是SkyWalking的架构图:

可以从http://skywalking.apache.org/downloads下载apache-skywalking-apm-$version.tar.gz包。

在gateway项目中设置vm对应的参数

复制代码
-javaagent:  :\apache-skywalking-apm-bin\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=ruoyi-gateway
-Dskywalking.collector.backend_service=localhost:11800

skywalking提供了一个可视化的监控平台,安装好之后,在浏览器中输入(http://localhost:8080(opens new window))就可以访问了。(我使用的是8.3.0版本)

链路跟踪

当我们访问一个服务,而他会调用另一个服务的时候,点击拓扑图会出现下图的效果,这就是链路跟踪的效果

在追踪界面,可以查看整个请求的具体调用链

小结

很显然,链路跟踪很有必要,比如哪里服务出了问题,服务性能到底如何,等等这些内容还是很有价值的,以上就是使用若依的环境做了配置,并没有深入的使用。

对于开发业务系统来讲,把自己的api和业务闭环搞好就行,需要关心的是自己有一套异常处理机制,补偿机制等等,可是这个链路追踪貌似并没有提供对应的职责。

同时,这个链路追踪一个很大的价值就是,能否满足查找异常,这个和分布式日志的关系是什么,需要进一步探究。

相关推荐
mghio32 分钟前
Dubbo 中的集群容错
java·微服务·dubbo
uhakadotcom2 小时前
视频直播与视频点播:基础知识与应用场景
后端·面试·架构
沉登c5 小时前
第 3 章 事务处理
架构
阿里云云原生5 小时前
LLM 不断提升智能下限,MCP 不断提升创意上限
云原生
阿里云云原生5 小时前
GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩
云原生
数据智能老司机8 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机8 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
云上艺旅9 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
c无序9 小时前
【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态
docker·容器·架构
数据智能老司机9 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构