背景
在微服务架构中一个请求会涉及到过个服务,而服务本身也可能会依赖其他服务,整个请求路径构成了一个网状的调用链,当调用链中某个节点出现异常,对于排查问题的难度非常大,为了方便解决此问题,我们需要一些可以帮助监控系统行为,分析性能问题、快速定位问题的APM工具。
解决方案
目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking,这里主要介绍 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。
架构图
SkyWalking主要由Collecter、UI、存储设备、Agent组成。存储设备包括Elasticsearch、H2、MySQL等,默认是采用H2。
安装部署
1、环境准备
JDK8+
8080、10800、11800、12800端口不被占用
2、下载地址
http://skywalking.apache.org/downloads/
解压后我们会在bin文件夹下看到如下文件
3、配置数据源
注意:在配置mysql数据存储时,一定要下载mysql-connector-java-5.1.36.jar放到此文件夹下面,否则会报错
代码集成
1、添加引用
2、配置环境变量
在项目的环境变量中配置SKYWALKING__SERVICENAME和ASPNETCORE_HOSTINGSTARTUPASSEMBLIES
3、添加配置文件
部署IIS
发布到IIS部署时先配置环境变量
登录测试
大家可以看到在拓扑图中可以非常清晰的看到请求链路中对每个服务的请求情况,方便线上问题的排查