前言微服务框架落地后,分布式部署架构带来的问题就会迅速凸显出来 。尤其线上出现问题,不知道如何排查,问题出现在哪个服务?如何快速定位问题?如何跟踪业务调用链路?如何分析解决业务瓶颈?今天老顾来跟小伙伴们看看如何解决以上问题 。
什么是链路追踪微服务架构是通过业务来划分服务的,使用REST调用 。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败 。随着业务的不断扩张,服务之间互相调用会越来越复杂 。
文章插图
上图中,user调用A,A会调用C,C再调用E;这条调用链路,我们还能够看清楚;但是一旦微服务很多,调用依赖复杂就看不清楚了,如下图
文章插图
上图是不是看到后,有密集恐惧症,像个线团,一团乱麻;如果这个时候出现了调用异常,那我们依据调用接口入口,一步步、一个服务一个服务的去跟踪调试;这个流程会把人搞疯的,也许1个小时后,也不知道什么问题;就像我们以前找线头,然后一步步的去重新卷圈 。面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是所谓的 APM(应用性能管理) 。
什么是 SkyWalkingSkywalking是一款国内开源的应用性能监控工具,支持对分布式系统的监控、跟踪和诊断 。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking 。SkyWalking也是Apache的孵化项目之一,拥有顶级二级域名 。
它提供了如下的主要功能特性:
文章插图
功能特性:
- 多种监控手段,语言探针和服务网格(Service Mesh)
- 多语言自动探针,JAVA,.NET Core 和 Node.JS
- 轻量高效,不需要大数据
- 模块化,UI、存储、集群管理多种机制可选
- 支持告警
- 优秀的可视化方案
文章插图
上图看了是不是比较乱,其实Skywalking总体可以分为四部分:
1、Skywalking Agent:使用Javaagent做字节码植入,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到Skywalking Collector 。
2、Skywalking Collector :链路数据收集器,对agent传过来的数据进行整合分析处理并落入相关的数据存储中 。
3、Storage:Skywalking的存储,在6.x版本中支持以ElasticSearch(推荐)、MySQL、TiDB、H2、作为存储介质进行数据存储 。
4、UI :Web可视化平台,用来展示落地的数据 。
下载并启动 SkyWalking官方已经为我们准备好了编译过的服务端版本,现在最新版本为6.4.0
下载地址为 http://skywalking.apache.org/downloads/
文章插图
配置 SkyWalking
下载完成后解压缩
# tar -xvf apache-skywalking-apm-6.4.0.tar# mv apache-skywalking-apm-bin /usr/local/skywalking# cd /usr/local/skywalking修改配置
# cd config# vim Application.yml@
文章插图
配置存储方式,默认H2,官方推荐elasticsearch
这里需要做三件事:
- 注释 H2 存储方案
- 启用 ElasticSearch 存储方案
- 修改 ElasticSearch 服务器地址
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}启动 SkyWalking
修改完配置后,进入 skywalkingbin 目录,运行startup.bat启动服务端
通过浏览器访问 http://localhost:8080 出现如下界面即表示启动成功
文章插图
默认的用户名密码为:admin/admin,登录成功后,效果如下图
文章插图
Java Agent 服务器探针agent简单的理解就是放一个插件,随着应用程序启动,监控数据、收集数据、发送数据的作用 。
探针文件在skywalking/agent目录下
文章插图
推荐阅读
- 支持小程序投放的6大微信广告类型
- 老式转盘微波炉怎么烤蛋挞 转盘微波炉可以烤蛋挞吗
- 《微软模拟飞行》与虚拟空中交通网络合作,或将提供真人空管服务
- 淘宝买家收到异常评价怎么办 淘宝恶意评价了怎么办
- 烤箱锡纸用几微米的 烤箱锡纸用多少微米的合适
- 2020新零售科技服务商创新排行榜
- 6问微服务到底靠不靠谱?
- 微波炉的谣言不断,几条是真的?真会致癌吗
- Linux网络服务的种类
- 服务器部署:php.ini 配置性能调优