分布式链路追踪工具Sky walking详解

1,为什么要使用分布式链路追踪工具

随着分布式系统和微服务架构的出现,且伴随着用户量的增加,项目的体量变得十分庞大,一次用户请求会经过多个系统,不同服务之间调用关系十分复杂,一旦一个系统出现错误都可能会影响整个请求的处理结果。而因为项目十分庞大,调用链路十分复杂,无法快速定位失败的位置和原因。
除此之外,复杂的分布式系统也面临如下问题:

  • 性能分析:一个服务依赖很多,被依赖的服务也依赖其他服务。如果某个接口耗时突然变长,那未必是直接调用的下游服务慢了,也可能是下游的下游慢了造成的,如何快速定位耗时变长的根本原因
  • 链路梳理:需求迭代很快,系统之间调用关系变化频繁,靠人工难以梳理系统链路拓扑图【系统之间的调用关系】
为了解决这些问题。Google推出了分布式链路跟踪系统Dapper,之后各个互联网公司都参照Dapper的思想推出了自己的分布式链路跟踪系统,而这些系统就是分布式系统下的APM系统

2,什么是APM系统

APM【application performance management】即应用性能管理系统,是对企业系统即时监控以实现对应程序性能管理和故障管理的系统化解决方案。应用性能管理,主要指对企业的关键业务应用进行检测,优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本

APM系统是可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位问题和解决问题

3,什么是OpenTracing

分布式链路跟踪最先由Goole在Dappper论文中提出,而Open Tracing通过提供平台无关,厂商无关的API,使得开发人员能够方便的添加(或更换)追踪系统的实现。

4,分布式链路追踪工具的主要工具对比

  • zipkin:Twitter公司开源的一个分布式追踪工具,被Spring Cloud Sleuth集成,使用广泛而稳定。
  • Sky walking:中国人吴晟【华为】开源的一款分布式追踪,分析,告警的工具,现在是Apache旗下的开源项目。
  • cat:大众点评开源的一款分布式链路追踪工具。
工具实现方式接入方式数据收集UI数据存储方案
zipkin拦截请求sleuth,引入依赖和配置链路,耗时一般内存,mysql,es,Cassandra
Sky walkingJava探针,字节码增强Javaagent链路,耗时,cpu,mem,JVM丰富es,mysql,h2,TiDB
cat代码埋点代码入侵链路,耗时,cpu,mem,JVM丰富mysql,hdfs

总结
zipkin

  • 优点:轻量级,Spring cloud集成,使用人数多,成熟
  • 缺点:功能简单,只有链路监控

sky walking

  • 优点,采集数据丰富,UI友好,扩展性高,使用者多,支持中间件以及框架多,社区活跃,
  • 缺点成熟度不够高

cat

  • 优点:采集数据丰富,UI友好,粒度最细
  • 缺点代码入侵,需要改动业务,git不够活跃,更新缓慢,存储支持不够广泛。

详细可查看 APM工具对比

5,Sky walking概述

根据官方解释,Sky walking是一个可观测分析平台【Observability Analysis Platform 简称OAP】和应用性能管理系统【Application Performance Management】简称APM。提供分布式链路追踪,服务网格遥测分析,度量聚合和可视化一体化解决方案。

主要特点

  • 多语言探针,Java,.net core和node.js。
  • 多监控手段,语言探针和Service mesh。
  • 轻量高效,不需要额外搭建大数据平台。
  • 模块化架构,UI,存储,集群管理多种机制可选。
  • 支持告警。
  • 优秀的可视化效果

Sky walking官网

6,Sky walking架构图

在这里插入图片描述
架构整体包含一下三个部分:

  • 探针【agent】:负责进行数据收集,包含Tracing【链路】和Metrics【度量】的数据,agent会被安装到服务所在的服务器上,一遍方便数据获取。
  • 可观测分析平台OAP:接收探针发送的数据,并在内存中使用分析引擎【Analysis Core】进行数据的整合运算,然后将数据存储到对应的存储介质上,比如ES,MySQL数据库,H2数据库等。同时OAP还使用查询引擎提供HTTP查询接口。
  • Sky walking提供单独的UI进行数据查看,此时UI会调用OAP提供的接口,获取对应的数据然后进行展示。

SkyWalking主要概念

  • 服务【Service】
  • 端点【Endpoint】
  • 实例【Instance】

如下图
在这里插入图片描述
上图中,我们编写了用户服务,这是一个web项目,在生产中部署了两个节点:192.168.1.100和
192.168.1.101。

  • 用户服务就是Sky walking的服务【Service】,用户服务其实就是一个独立的应用【Application】,在6.0之后的Sky walking将应用改名为服务【service】
  • 用户服务对外提供的HTTP接口比如【/usr/queryAll】就是一个端点,端点就是对外提供的接口
  • 192.168.1.100和192.168.1.101这两个相同服务部署的节点就是实例,实例指同一个服务可以部署多个。

7,环境搭建

7.1打开官网,点击下载

在这里插入图片描述

7.2下载对应的Sky walking版本

在这里插入图片描述

7.3 解压
tar -zxvf apache-skywalking-apm-9.0.0.tar.gz -C ./
7.4启动

解压后进入Sky walking的bin目录下
在这里插入图片描述
启动

./start.sh
# windowns系统使用./start.bat

在这里插入图片描述
使用jps命令查看进程
在这里插入图片描述
访问http://localhost:8080
在这里插入图片描述
部署成功

7.5下载探针

在这里插入图片描述
将探针解压

7.6 快速搭建一个微服务项目

从零搭建AlibabaCloud微服务项目

7.7 在本地IDEA项目中配置探针

项目结构如下
在这里插入图片描述
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数据的后端地址
在这里插入图片描述
重新启动
在这里插入图片描述
启动成功

7.8 Sky walking UI界面查看

在这里插入图片描述

8 编写一个测试接口

@RestController
public class AdminController {@GetMapping("/getUserById")public String getUserById() {return "user:123";}
}

访问 http://localhost:8086/getUserById
查看拓扑图
在这里插入图片描述
链路追踪图
在这里插入图片描述
至此Sky walking环境搭建完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/833682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iphone忘记锁屏密码怎么解锁?这些解锁方法你必须知道!

在使用iPhone的过程中经常会遇到很多问题,比如忘记了iPhone的锁屏密码。面对这样的情况,许多用户可能会感到手足无措。别担心,本文将为您详细介绍iPhone忘记锁屏密码的解锁方法,让您轻松解决这一烦恼。 一、使用iTunes备份恢复 如…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接:https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库,点击创建,这时你就拥有一个线上…

python作业五

题目:注册登录 制作一个注册登录模块 注册:将用户填入的账户和密码保存到一个文件(users.bin) 登陆:将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那 么登录成功,否则登录失败…

电脑屏幕监控软件有哪些?8款受欢迎的电脑屏幕监控软件

电脑屏幕监控软件有哪些?8款受欢迎的电脑屏幕监控软件 市场上有很多监控软件,因为太多,很多老板不知道怎么选,今天小编从它们各自的特点、优势、未来发展趋势几方面,介绍8款受欢迎的电脑屏幕监控软件。 第一是&#x…

探索网站支付系统的奥秘,从Vue3和Spring Boot开始(入门级项目实战+在线教程)附赠项目源码!

你是否曾经在购物时,对着电脑屏幕前的“支付成功”四个字感到好奇?这背后的秘密究竟是什么? 今天,让我们一起揭开支付系统的神秘面纱,探索其背后的技术实现。 在这个基于Vue3和Spring Boot的支付项目实战中&#xff…

MySQL学习笔记10——日志

日志 一、日志1、通用查询日志(1)开启通用查询日志(2)查看通用查询日志(3)删除通用查询日志 2、慢查询日志3、错误日志4、二进制日志(1)查看二进制日志(2)刷新…

Ansible-Playbook——部署LNMP架构

目录 环境准备 一、配置Nginx的Roles角色 1.创建Nginx所需的文件夹 2.编写Nginx配置文件 3.编写Nginx安装文件 4.编写Nginx控制器文件 5.编写Nginx任务文件 6.编写Nginx变量文件 二、配置Mysql的Roles角色 1.创建Mysql所需的文件夹 2.编写Mysql启动文件 3.编写Mysql…

源码部署与SaaS账号:企业软件选择的自建房与租赁公寓之辩

在数字化运营的时代,企业选择软件解决方案就如同在选择住所:源码部署类似于“自建房屋”,而SaaS账号则更像是“租赁公寓”。 自建房屋(源码部署) 当你选择自建房屋时,你需要投入大量的时间和资金来购买土地…

二叉树遍历总结

7.二叉树 二叉树理论基础 二叉树的种类 在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。 满二叉树 完全二叉树 二叉搜索树 平衡二叉搜索树 C中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增…

实现左上角的固定视口但是网格以图片中心放大缩小

仅仅修改了showbk() 函数部分,增加bkv4 直接采样,然后粘贴到左上角,实现多余部分裁剪,形成视口内放大缩小 // 程序:2D RPG 地图编辑器与摄像机追随 // 作者:bilibili 民用级脑的研发…

C语言(指针)1

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

【操作系统】内存管理——地址空间连续内存分配与非连续内存分配

内存管理——地址空间&连续内存分配与非连续内存分配 一、地址空间1.1 计算机存储层次1.2 地址和地址空间1.3 虚拟存储的作用 二、内存分配2.1 静态内存分配2.2 动态内存分配 三、连续内存分配3.1 动态分区分配3.2 伙伴系统(Buddy System) 四、非连续…

深入浅出(五)JsonCpp库

JsonCpp库 1. JsonCpp 库1.1 JsonCpp库下载 2. JsonCpp库编译与部署3. C示例 1. JsonCpp 库 JsonCpp 是一个开源的 C 库,用于解析、生成和操作 JSON 数据。它提供了简单易用的 API,使得在 C 程序中处理 JSON 数据变得方便和高效。以下是 JsonCpp 库的一…

适合宝妈的项目,一单20,看似不起眼的小生意,却能闷声发财!

向大家推荐一个小项目,信息差较大,每单至少有20元的利润。目前参与的人还不多,是个不错的机会。操作方法也非常简单,只需利用京东家政券赚取差价。可能很多人是第一次了解到这个——京东竟然还有家政券。 周周近财:让…

Android11 InputReader分析

InputReader线程主要负责读取输入数据,并把数据交给InputDispatcher线程。本文以多指触摸屏为例,梳理一下InputReader的流程。 InputReader线程主要完成以下工作: 处理已有的输入设备处理新增或者移除的输入设备对输入设备产生的输入数据进行…

数字工厂管理系统如何实现生产过程透明化

随着科技的飞速发展,数字化转型已成为制造业不可逆转的趋势。数字工厂管理系统作为实现生产自动化、智能化的重要工具,其在提升生产效率、降低运营成本、优化资源配置等方面的作用日益凸显。其中,实现生产过程的透明化是数字工厂管理系统的重…

一文彻底学会Vue3路由:全面讲解路由流程、路由模式、传参等——全栈开发之路--前端篇(7)路由详解

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…

数据中台:企业数字化转型的驱动力量_光点科技

在当今数字化快速发展的时代,企业正积极寻求转型升级的新路径。在这个过程中,数据中台以其独特的功能和价值,逐渐成为了企业数字化转型的关键驱动力。本文将深入探讨数据中台的角色、架构及其在企业中的应用,以期为企业的数字化转…

01-基本概念- 索引,文档和 REST API

# kibana_sample_data_ecommerce 为es 索引#查看索引相关信息 GET kibana_sample_data_ecommerce#查看索引的文档总数 GET kibana_sample_data_ecommerce/_count#查看前10条文档,了解文档格式 POST kibana_sample_data_ecommerce/_search { }#_cat indices API #查看…

论文查重率高,有什么办法降重吗?

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下,延毕的威胁可能就在眼前。对于即将告别校园的学子们,这无疑是个噩梦。四年磨一剑,谁也不想在最后关头功亏一篑。 查重率过高,无非以下两种原因。要么是作为“…