享学课堂特邀作者:老顾
转载请声明出处!
前言
微服务框架落地后,分布式部署架构带来的问题就会迅速凸显出来。尤其线上出现问题,不知道如何排查,**问题出现在哪个服务?如何快速定位问题?**如何跟踪业务调用链路?**如何分析解决业务瓶颈?**今天老顾来跟小伙伴们看看如何解决以上问题。
什么是链路追踪
微服务架构是通过业务来划分服务的,使用REST调用。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。
上图中,user调用A,A会调用C,C再调用E;这条调用链路,我们还能够看清楚;但是一旦微服务很多,调用依赖复杂就看不清楚了,如下图
上图是不是看到后,有密集恐惧症,像个线团,一团乱麻;如果这个时候出现了调用异常,那我们依据调用接口入口,一步步、一个服务一个服务的去跟踪调试;这个流程会把人搞疯的,也许1个小时后,也不知道什么问题;就像我们以前找线头,然后一步步的去重新卷圈。
面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是所谓的 APM(应用性能管理)。
什么是 SkyWalking
Skywalking是一款国内开源的应用性能监控工具,支持对分布式系统的监控、跟踪和诊断。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。SkyWalking也是Apache的孵化项目之一,拥有顶级二级域名。
它提供了如下的主要功能特性:
功能特性:
* 多种监控手段,语言探针和服务网格(Service Mesh)
* 多语言自动探针,Java,.NET Core 和 Node.JS
* 轻量高效,不需要大数据
* 模块化,UI、存储、集群管理多种机制可选
* 支持告警
* 优秀的可视化方案