当前位置: 首页 > news >正文

SpringBoot(48)-使用 SkyWalking 进行分布式链路追踪

Spring Boot(48)- 使用 SkyWalking 进行分布式链路追踪

介绍

在分布式系统中,了解各个服务之间的调用关系和性能表现是非常重要的。SkyWalking 是一款开源的分布式系统监控与分析平台,能够帮助我们实现分布式系统的链路追踪、性能监控和故障排查。本教程将介绍如何使用 Apache SkyWalking 进行分布式链路追踪,帮助我们深入了解分布式系统的运行情况。

前置知识

  1. Java 编程基础
  2. SpringBoot 应用开发、微服务架构概念
  3. Skywalking 核心概念

准备工作

  1. 下载并安装 Apache SkyWalking 服务器。
  2. 配置 Alibaba SkyWalking 服务器。
  3. 创建一个基本的 Spring Boot 应用,用于进行链路追踪实验。

步骤一:安装和配置 SkyWalking 服务器

  1. 下载 SkyWalking 服务器安装包。
  2. 解压安装包到指定目录。
  3. 配置 SkyWalking 服务器的相关参数。
    本文是用 v9.0.0 版本为例
    进入 SkyWalking 官方网站下载页面,点击 tar 资源下载
    在这里插入图片描述
    目录结构如下:
    在这里插入图片描述
    进入 bin 执行,执行 bash startup.sh (如果是 Windows ,执行 startup.bat)

访问 localhost:8080 ,正常访问表示启动成功。
在这里插入图片描述
相比 6.X、7.X,新页面还是可以的。

步骤二:编写 Spring Boot 应用

  1. 添加 SkyWalking 依赖到 Spring Boot 项目中。
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.0.0</version>
</dependency>
  1. 配置 Spring Boot 应用的 SkyWalking 连接信息。
    application.properties 文件配置如下:
spring.application.name=skywalking-quickstart
# 应用端口号
server.port=8081
# SkyWalking 配置
skywalking.collector.backend_service=127.0.0.1:11800
skywalking.trace.ignore_path=/css,/js,/images
  1. 下载 Skywalking Agent
    Skywalking 通过 Agent 的方式上报链路数据, 所以需要下载对应版本 Agent ,本文下载 V9.0.0[tar]。
    在这里插入图片描述
    解压后目录如下所示:
    在这里插入图片描述
    重点关注 skywalking-agent.jar 的全路径, 比如本文的地址是: /Users/murphy/Downloads/skywalking-agent/skywalking-agent.jar

  2. IDEA 配置 启动参数
    如何在IDEA 中配置 java agent 的启动参数呢?如下所示

打开 IntelliJ IDEA,并打开你的 Spring Boot 项目。
在菜单栏中选择 “Run” -> “Edit Configurations…”。
在弹出的窗口中,选择你的 Spring Boot 应用程序的运行/调试配置。
在右侧的 “Configuration” 选项卡中,找到 “VM options” 输入框。
在 “VM options” 输入框中输入以下内容

-javaagent:/Users/murphy/Downloads/skywalking-agent/skywalking-agent.jar

在这里插入图片描述

  1. 编写一个验证接口
import org.apache.skywalking.apm.toolkit.trace.ActiveSpan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@GetMapping("/hello")public String hello() {// 手动触发链路信息的上传ActiveSpan.tag("tag_key", "tag_value");return "Hello World!";}
}
  1. 启动 Spring Boot 应用,使其将调用链信息发送到 SkyWalking 服务器。
    访问接口 localhost:8081/hello 。

步骤三:查看分布式链路追踪结果

  1. 登录 SkyWalking 控制台,查看应用的调用链信息和性能指标。
    在这里插入图片描述

  2. 观察调用链路图,了解各个服务之间的调用关系和性能瓶颈。
    在这里插入图片描述

常见问题及解答

  1. 问题:SkyWalking 服务器启动失败。
    解答:检查 SkyWalking 服务器的配置和环境是否正确,确保端口未被占用,默认是 8080端口。

  2. 问题:应用的调用链信息未显示在 SkyWalking 控制台。
    解答:检查应用的 SkyWalking 配置是否正确,尤其是 Skywalking Agent 的版本和路径是否正确 , 确保连接信息和应用名称配置无误。

总结

通过本教程,我们学习了如何使用 Alibaba SkyWalking 进行分布式链路追踪。SkyWalking 提供了强大的分布式系统监控能力,能够帮助我们深入了解分布式系统的运行情况,及时发现和解决性能问题。

最后,贴上项目源码地址:d48-skywalking

相关文章:

SpringBoot(48)-使用 SkyWalking 进行分布式链路追踪

Spring Boot&#xff08;48&#xff09;- 使用 SkyWalking 进行分布式链路追踪 介绍 在分布式系统中&#xff0c;了解各个服务之间的调用关系和性能表现是非常重要的。SkyWalking 是一款开源的分布式系统监控与分析平台&#xff0c;能够帮助我们实现分布式系统的链路追踪、性…...

JS实现双向数据绑定的三种方式

1、第一种是通过Proxy数据代理来达到双向绑定的,这是Vue3更新的双向绑定方式。 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Proxy双向绑定</title> <<...

Bash相关

Bash shell是Linux内核与用户之间的解释器程序 变量 自定义变量&#xff0c;名称可以用数字、字母、下划线、不能以数字开头&#xff0c;不能使用特殊符号&#xff0c;等号两边不能有空格 格式&#xff1a;变量名称值 环境变量&#xff0c;由系统提前定义好&#xff0c;使用…...

Flink 流批一体在模型特征场景的使用

摘要&#xff1a;本文整理自B站资深开发工程师张杨老师在 Flink Forward Asia 2023 中 AI 特征工程专场的分享。内容主要为以下四部分&#xff1a; 模型特征场景流批一体性能优化未来展望 一、 模型特征场景 以下是一个非常简化并且典型的线上实时特征和样本的生产过程。 前面…...

06-编辑器

gedit编辑器 gedit是Ubuntu系统自带的编辑器&#xff0c;可以用来轻度编辑和记录一些内容。 在终端中我们通过以下命令打开&#xff1a; gedit 要打开或者新建的文件名虽然Ubuntu的图形界面也能通过gedit打开文件&#xff0c;但是用终端打开gedit可以动用更高的权限&#xff…...

5.3.2 实验2:配置交换机端口安全

1、实验目的 通过本实验可以掌握&#xff1a; 交换机管理地址配置及接口配置。查看交换机的MAC地址表。配置静态端口安全、动态端口安全和粘滞端口安全的方法。 2、实验拓扑 配置交换机端口安全的实验拓扑如图所示。 配置交换机端口安全的实验拓扑 3、实验步骤 &#xff…...

【AIGC调研系列】通义千问、文心一言、抖音云雀、智谱清言、讯飞星火的特点分析

通义千问、文心一言、抖音云雀、智谱清言、讯飞星火这五款AI大模型各有特色&#xff0c;它们在市场上的定位和竞争策略也有所不同。 通义千问&#xff1a;由阿里巴巴推出&#xff0c;被认为是最接近ChatGPT水平的国产AI模型[7]。它不仅提供了长文档处理功能&#xff0c;还能够…...

【JVM】如何定位、解决内存泄漏和溢出

目录 1.概述 2.堆溢出、内存泄定位及解决办法 2.1.示例代码 2.2.抓堆快照 2.3.分析堆快照 1.概述 常见的几种JVM内存溢出的场景如下&#xff1a; Java堆溢出&#xff1a; 错误信息: java.lang.OutOfMemoryError: Java heap space 原因&#xff1a;Java对象实例在运行时持…...

常见网络问题的概述

网络问题概述 网络问题可能包括视频通话延迟、应用或网络速度慢、下载缓冲、VoIP质量差和互联网连接丢失等。 这些问题可能由硬件故障、使用模式变化、安全漏洞等引起&#xff0c;且可能对业务运营产生严重影响。 网络问题对企业的影响 网络问题不可避免&#xff0c;但可以…...

说说你对数据结构-树的理解

对树 - 二叉搜索树的理解 二叉搜索树是一种常见的二叉树结构&#xff0c;它具有以下特点&#xff1a; 每个节点最多只有两个子节点&#xff0c;分别称为左子节点和右子节点&#xff1b;对于任意节点&#xff0c;其左子树中的所有节点均小于该节点&#xff0c;其右子树中的所有…...

Docker实例

华子目录 docker实例1.为Ubuntu镜像添加ssh服务2.Docker安装mysql docker实例 1.为Ubuntu镜像添加ssh服务 (1)访问https://hub.docker.com&#xff0c;寻找合适的Ubuntu镜像 (2)拉取Ubuntu镜像 [rootserver ~]# docker pull ubuntu:latest latest: Pulling from library/ub…...

python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】

&#x1f4dd;前言&#xff1a; 这篇文章主要讲解一下python基础中的关于模块的导入&#xff1a; 1&#xff0c;模块的介绍 2&#xff0c;模块的导入方式 3&#xff0c;自定义模块 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;C语言入门基…...

【HTML】标签学习(下.2)

&#xff08;大家好哇&#xff0c;今天我们将继续来学习HTML&#xff08;下.2&#xff09;的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 二.列表标签 2.1 无序列表(重点) 2.2有序列表(理解) 2.3 自定义列表(重点…...

os模块篇(十一)

文章目录 os.chdir(path)os.chmod(path, mode, *, dir_fdNone, follow_symlinksTrue)os.chown(path, uid, gid, *, dir_fdNone, follow_symlinksTrue)os.getcwd()os.getcwdb()os.lchflags(path, flags)os.lchmod(path, mode)os.lchown(path, uid, gid) os.chdir(path) os.chdi…...

编译amd 的 amdgpu 编译器

1,下载源码 git clone --recursive https://github.com/ROCm/llvm-project.git 2, 配置cmake cmake -G "Unix Makefiles" ../llvm \ -DLLVM_ENABLE_PROJECTS"clang;clang-tools-extra;compiler-rt" \ -DLLVM_BUILD_EXAMPLESON …...

github 多个账号共享ssh key 的设置方法

确认本机是否已有ssh key 首先确认自己系统内有没有 ssh key。 bash复制代码cd ~/.ssh ls *.pub # 列出所有公钥文件id_rsa.pub若有&#xff0c;确认使用当前 key 或者生成新 key&#xff0c;若没有&#xff0c;生成新 key。由于我需要登录两个帐号&#xff0c;所以在已经存在…...

dm8修改sysdba用户的密码

1 查看达梦数据库版本 SQL> select * from v$version;LINEID BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134283904-20220630-163817-200052 …...

基于boost准标准库的搜索引擎项目

零 项目背景/原理/技术栈 1.介绍boost准标准库 2.项目实现效果 3.搜索引擎宏观架构图 这是一个基于Web的搜索服务架构 客户端-服务器模型&#xff1a;采用了经典的客户端-服务器模型&#xff0c;用户通过客户端与服务器交互&#xff0c;有助于集中管理和分散计算。简单的用户…...

语言模型进化史(下)

由于篇幅原因&#xff0c;本文分为上下两篇&#xff0c;上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型&#xff0c;下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是&#xff1a;https://www.numind.ai/blog/what-are-large-language-models 四、现…...

设计模式之旅:工厂模式全方位解析

简介 设计模式中与工厂模式相关的主要有三种&#xff0c;它们分别是&#xff1a; 简单工厂模式&#xff08;Simple Factory&#xff09;&#xff1a;这不是GoF&#xff08;四人帮&#xff0c;设计模式的开创者&#xff09;定义的标准模式&#xff0c;但被广泛认为是工厂模式的…...

大数据时代的生物信息学:挖掘生命数据,揭示生命奥秘

在当今科技日新月异的时代&#xff0c;大数据如同一座蕴藏无尽宝藏的矿山&#xff0c;而生物信息学则是那把锐利的探矿锤&#xff0c;精准有力地敲击着这座“生命之矿”&#xff0c;揭示出隐藏在其深处的生命奥秘。随着基因测序技术的飞速进步与广泛应用&#xff0c;生物医学领…...

微信小程序开发【从入门到精通】——页面导航

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出

系列文章目录 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记01&#xff1a;赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431&#xff08;HAL库开发&#xff09;——CT117E学习笔记02&#xff1a;开发环境安装 嵌入式|蓝桥杯STM32G431&#xff08;…...

SQLite中的隔离(八)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite版本3中的文件锁定和并发(七&#xff09; 下一篇&#xff1a;SQLite 查询优化器概述&#xff08;九&#xff09; 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之…...

Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册

Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册 概述&#xff1a; Grafana是一个开源的数据可视化和监控平台。其特点&#xff1a; 1&#xff09;丰富的可视化显示插件&#xff0c;包括热图、折线图、饼图&#xff0c;表格等&#xff1b; 2&#xff09;支持多数据…...

Electron无边框自定义窗口拖动

最近使用了electron框架&#xff0c;发现如果自定义拖动是比较实用的;特别是定制化比较高的项目&#xff0c;如果单纯的使用-webkit-app-region: drag;会让鼠标事件无法触发; 过程中发现问题&#xff1a; 1.windows缩放不是100%后设置偏移界面会缩放&#xff0c;感觉像吹起的气…...

vue3+echarts:echarts地图打点显示的样式

colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…...

vue3从精通到入门7:ref系列

Vue 3 的 Ref 是一个集合&#xff0c;包括多个与响应式引用相关的功能&#xff0c;这些功能共同构成了 Vue 3 响应式系统的重要组成部分。以下是更全面的介绍&#xff1a; 1.ref ref 接受一个内部值并返回一个响应式且可变的 ref 对象。这个对象具有一个 .value 属性&#xf…...

灵动翻译音频文件字幕提取及翻译;剪映视频添加字幕

参考&#xff1a;视频音频下载工具 https://tuberipper.com/21/save/mp3 1、灵动翻译音频文件字幕提取及翻译 灵动翻译可以直接chorme浏览器插件安装&#xff1a; 点击使用&#xff0c;可以上传音频文件 上传后自动翻译&#xff0c;然后点击译文即可翻译成中文&#xff0c;…...

在Gitee上创建新仓库

1. 登录到你的Gitee账户。 2. 在Gitee首页或仓库页面&#xff0c;点击“新建仓库”按钮。 3. 填写仓库名称、描述&#xff08;可选&#xff09;、选择仓库是否公开等信息。 4. 点击“创建仓库”按钮完成创建。 2. 本地代码连接到远程仓库 假设你已经在本地有一个项目&#…...

北京网站定制设计开发公司/网络广告营销策略

无论服务端或客户端启动时都用到了NioEventLoopGroup&#xff0c;从名字就可以看出来它是NioEventLoop的组合&#xff0c;是Netty多线程的基石。 类结构 NioEventLoopGroup继承自MultithreadEventLoopGroup&#xff0c;多提供了两个方法setIoRatio和rebuildSelectors&#xff0…...

包装产品做网站/今日头条新闻推荐

大学的学习&#xff0c;相比高中需要做出重大的改变。由大家都一样的教育&#xff0c;转而到专业教育&#xff0c;结合专业特点安排学习&#xff0c;也可能要有不小的改变。然而&#xff0c;人从娘胎中带来的改变本能随着长大却被保守所代替&#xff0c;明知一些问题存在&#…...

软件开发和网站建设哪个好/百度推广的价格表

如果百度的话&#xff0c;你会发现很多的安装文献&#xff0c;大体相同&#xff0c;但是都有些不一样的地方。我的安装过程和百度上的也不太一样。所以&#xff0c;在这里也提供一个方法给安装tensorflow-gpu的同志们参考。 环境 Python3.7&#xff0c; gpu是mx150 &#xff0…...

福永镇网站建设/制作链接的小程序

发布一个k8s部署视频&#xff1a;https://edu.csdn.net/course/detail/26967 课程内容&#xff1a;各种k8s部署方式。包括minikube部署&#xff0c;kubeadm部署&#xff0c;kubeasz部署&#xff0c;rancher部署&#xff0c;k3s部署。包括开发测试环境部署k8s&#xff0c;和生产…...

网站跳转代码 html/百度收录提交入口网址是什么

在前面几篇文章我们已经对FreeRTOS任务API和任务调度原理进行了相对深入的分析 这篇文章主要针对任务与任务之间的交互&#xff0c;信息传递相关的API组件进行分析目录一、任务通知基本介绍1、FreeRTOS 任务通知函数2、CMSIS封装后任务通知函数2.1 osSignalSet2.2 osSignalWait…...

网站运营与管理论文/南宁网络推广平台

1.1.0、学习目的理解 File 类的作用和意义参见 1.1.1 概述部分理解 File 类中的常量的含义和作用参见 1.1.2 常量部分掌握通过构造方法创建 File 实例参见 1.1.3 构造方法 部分掌握 File 类中的实例方法参见 1.1.4 实例方法部分了解 File 类中的类方法参见 1.1.5 类方法 部分理…...