赞
踩
随着分布式系统和微服务架构的出现,且伴随着用户量的增加,项目的体量变得十分庞大,一次用户请求会经过多个系统,不同服务之间调用关系十分复杂,一旦一个系统出现错误都可能会影响整个请求的处理结果。而因为项目十分庞大,调用链路十分复杂,无法快速定位失败的位置和原因。
除此之外,复杂的分布式系统也面临如下问题:
为了解决这些问题。Google推出了分布式链路跟踪系统Dapper,之后各个互联网公司都参照Dapper的思想推出了自己的分布式链路跟踪系统,而这些系统就是分布式系统下的APM系统
APM【application performance management】即应用性能管理系统,是对企业系统即时监控以实现对应程序性能管理和故障管理的系统化解决方案。应用性能管理,主要指对企业的关键业务应用进行检测,优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本
APM系统是可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位问题和解决问题
分布式链路跟踪最先由Goole在Dappper论文中提出,而Open Tracing通过提供平台无关,厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。
工具 | 实现方式 | 接入方式 | 数据收集 | UI | 数据存储方案 |
---|---|---|---|---|---|
zipkin | 拦截请求 | sleuth,引入依赖和配置 | 链路,耗时 | 一般 | 内存,mysql,es,Cassandra |
Sky walking | Java探针,字节码增强 | Javaagent | 链路,耗时,cpu,mem,JVM | 丰富 | es,mysql,h2,TiDB |
cat | 代码埋点 | 代码入侵 | 链路,耗时,cpu,mem,JVM | 丰富 | mysql,hdfs |
总结
zipkin
sky walking
cat
详细可查看 APM工具对比
根据官方解释,Sky walking是一个可观测分析平台【Observability Analysis Platform 简称OAP】和应用性能管理系统【Application Performance Management】简称APM。提供分布式链路追踪,服务网格遥测分析,度量聚合和可视化一体化解决方案。
主要特点
架构整体包含一下三个部分:
SkyWalking主要概念
如下图
上图中,我们编写了用户服务,这是一个web项目,在生产中部署了两个节点:192.168.1.100和
192.168.1.101。
tar -zxvf apache-skywalking-apm-9.0.0.tar.gz -C ./
解压后进入Sky walking的bin目录下
启动
./start.sh
# windowns系统使用./start.bat
使用jps命令查看进程
访问http://localhost:8080
部署成功
将探针解压
项目结构如下
skywalking-agent就是解压后的探针
配置探针
添加
-javaagent:./skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=admin
命令解析
./skywalking-agent/skywalking-agent.jar 是探针的位置,如下图
Dskywalking.agent.service_name是在Sky walking服务中的名字
修改skywalking trace数据的后端地址
重新启动
启动成功
@RestController
public class AdminController {
@GetMapping("/getUserById")
public String getUserById() {
return "user:123";
}
}
访问 http://localhost:8086/getUserById
查看拓扑图
链路追踪图
至此Sky walking环境搭建完成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。