【第33章】Spring Cloud之SkyWalking服务链路追踪

news2024/12/27 11:13:09

文章目录

  • 前言
  • 一、介绍
    • 1. 架构图
    • 2. SkyWalking APM
  • 二、服务端和控制台
    • 1. 下载
    • 2. 解压
    • 3. 初始化数据库
    • 4. 增加驱动
    • 5. 修改后端配置
    • 6. 启动
    • 7. 访问控制台
    • 8. 数据库表
  • 三、客户端
    • 1. 下载
    • 2. 设置java代理
    • 3. idea配置
      • 3.1 环境变量
      • 3.2 JVM参数
      • 3.3 启动日志
    • 4. 启用网关插件
  • 四、链路跟踪
    • 1. 服务列表
    • 2. 服务仪表盘
    • 3. 链路追踪(网关)
    • 4. 链路追踪(消费者)
  • 总结


前言

SkyWalking是一个开源的观测平台,专为微服务、云原生架构和基于容器(如Docker、Kubernetes等)的应用程序设计,提供分布式追踪、服务网格遥测分析、度量聚合和可视化的一体化解决方案。

由国内开源爱好者吴晟开源并提交到Apache孵化器的项目,2019年4月从Apache基金会的孵化器毕业成为顶级项目。

SkyWalking目前已经来到10的大版本,但是由于升级太快导致没有对应的中文文档,所以我们只做初步的使用,让SkyWalking为我们的项目展示图形化的服务链路拓扑图。


一、介绍

1. 架构图

在这里插入图片描述

在这里插入图片描述

  • UI :前端,控制台界面,仪表盘展示数据
  • Backend:后端,接收及转存信息
  • Storage:存储端,存储数据
  • Agent:客户端,收集应用程序指标信息,并推送到客户端

2. SkyWalking APM

在这里插入图片描述

二、服务端和控制台

1. 下载

这里我们通过官方网站
在这里插入图片描述

2. 解压

Requirement: Java 11/17/21.大家注意,这里最低要求Java 11

tar -zxvf apache-skywalking-apm-10.0.0.tar.gz
mv apache-skywalking-apm-bin skywalking

3. 初始化数据库

我本地已经有mysql数据库,这里新建一个库作为skywalking的存储库

create database skywalking;
CREATE USER 'skywalking'@'%' IDENTIFIED BY 'skywalking';
GRANT ALL PRIVILEGES ON skywalking.* TO 'skywalking'@'%';
FLUSH PRIVILEGES;
use skywalking;

4. 增加驱动

我们需要将mysql-connector-java或者mysql-connector-j驱动包添加到oap-libs目录下

5. 修改后端配置

默认的数据库是h2,这里我们通过定义环境变量修改配置为mysql配置

vi ~/.bash_profile
# skywalking
export SW_STORAGE=mysql
export SW_JDBC_URL="jdbc:mysql://localhost:3306/skywalking?rewriteBatchedStatements=true&allowMultiQueries=true"
export SW_DATA_SOURCE_USER=skywalking
export SW_DATA_SOURCE_PASSWORD=skywalking
source ~/.bash_profile

6. 启动

sh startup.sh

startup.sh包含了oapService.sh和webappService.sh

  • serverPort: ${SW_SERVER_PORT:-8080}
  • oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800}

后端服务 0.0.0.0/11800 监听 gRPC APIs , 0.0.0.0/12800 监听 HTTP REST APIs.

7. 访问控制台

127.0.0.1:8080
在这里插入图片描述

8. 数据库表

初始化完成后的数量为125张表

在这里插入图片描述

三、客户端

1. 下载

在这里插入图片描述
在这里插入图片描述

2. 设置java代理

  1. Agent 在 JDK 8 - 21可用.
  2. 下载agent并解压到本地.
  3. 找到config/agent.config配置文件,设置 agent.service_name . 可以是任意英文字符串.
  4. 找到config/agent.config配置文件,设置 collector.backend_service. 默认值为127.0.0.1:11800,仅适用于本地后端。
  5. 添加 -javaagent:/path/to/skywalking-package/agent/skywalking-agent.jar JVM参数.请确保在-jar参数之前添加它。

3. idea配置

3.1 环境变量

SW_AGENT_NAME=gateway-service;SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.137.192:11800

在这里插入图片描述

3.2 JVM参数

-javaagent:F:\workspace\skywalking-agent\skywalking-agent.jar

在这里插入图片描述

3.3 启动日志

在这里插入图片描述

4. 启用网关插件

optional-plugins/apm-spring-cloud-gateway-4.x-plugin-9.3.0.jar移动到/plugins

四、链路跟踪

1. 服务列表

在这里插入图片描述

2. 服务仪表盘

在这里插入图片描述

3. 链路追踪(网关)

在这里插入图片描述

在这里插入图片描述
网关层串联不到下一个链路,我们直接用消费者试试

4. 链路追踪(消费者)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同一个请求链路经过的上下游应用都需要以agent形式启动,才能形成完整的链路关系。


总结

回到顶部
官方网站
官方文档
视频学习
稀土掘金
演示地址(skywalking/skywalking)

SkyWalking功能很强大,感兴趣的同学可以进一步发掘,社区最新推出了BanyanDB,相信这款数据库工具和SkyWalking结合起来能够事半功倍,给我们带来更多的震撼和期待。

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

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

相关文章

AI带货直播插件的五大基础功能和源代码!

随着人工智能技术的飞速发展,AI带货直播插件已成为电商领域的重要工具,这类插件通过集成先进的人工智能技术,不仅提升了直播的效率和互动性,还大大增强了用户体验和转化率。 一、AI带货直播插件的五大基础功能 ‌1、自动化内容生…

Qt 弹出菜单右键菜单 QMenu 设置不同颜色的子项

概述 在Qt中,可以使用样式表(StyleSheet)来自定义 QMenu 的外观,包括其子项(如菜单项QAction)的颜色。但是,这通常可以设置 QMenu 的整体样式,而不能单独设置某个子项的颜色。不过&…

5.安卓逆向-java面向对象

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 上一个内容:4.安卓逆向-常用数据结构java语言中的集合 之前的内容写了java语言常用的数据结构&#xff08…

个性化、持续性阅读 学生英语词汇量自然超越标准

2024年秋季新学年,根据2022版《义务教育英语课程标准》全新修订的英语新版教材开始投入使用,标志着我国英语教育迈入了一个以应用为导向、注重综合素养培养的新阶段。 新版教材的变革不仅仅是一次词汇量的简单增加,更是一场从应试到应用的深…

三菱FX5U CPU简单CPU通讯

1、与搭载以太网的模块,以及与通信对象设备之间进行数据通信的功能。 2、可以使用以太网端口与通信对象设备进行连接,并以指定的时机对指定的软元件数据进行发送和接收。3、仅通过GX Works3进行简单的参数设置,即可以构建无程序的通信系统。 …

共模干扰的形成和滤除

1、共模就是共同对地的干扰: 如图,我们可以看到共模的原理图。UPQ就是共模电压,ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同,方向相同。 2、共模信号和差模信号的区别: 通常电源线有三根线:火线L、…

supabase链接vecs文档

使用Supabase链接本地数据库 Vecs 如何使用本地数据库工作。确保机器上安装了Supabase CLI。 # Initialize your project supabase init# Start Postgres supabase startSupabase vecs同步数据 vecs官方文档 创建集合 import vecs #下面这一行是本地的postgre数据库连接 #…

通过HTforWeb在ARMxy边缘计算网关上实现工业互联网

随着工业互联网技术的不断进步和发展,企业越来越重视通过数字化手段提高生产效率、降低成本并增强竞争力。ARMxy BL340系列作为一款高性能的工业级ARM嵌入式计算机,为实现这些目标提供了坚实的硬件基础。而HTforWeb作为一款专业的前端开发工具&#xff0…

OCR 通用端到端模型GOT

摘要 在人工智能领域,光学字符识别(OCR)技术已经取得了显著的进展。随着技术的不断进步,我们正迈向OCR 2.0时代。本文将介绍由Vary团队开发的通用端到端模型GOT,这一模型在OCR领域具有革命性的潜力。 论文概览 论文…

【Python 数据分析学习】Pandas的基础和应用(2)

题目 1 数据运算与分析1.1 算数和比较运算1.1.1 算数运算1.1.2 比较运算 1.2 数据排列1.3 统计分析1.3.1 基本的统计分析函数1.3.2 特殊的统计分析函数1.3.3 检查和处理空值 1.4 分组与聚合1.4.1 数据分组1.4.2 数据聚合 1.5 透视交叉表1.5.1 透视表1.5.2 交叉表 2 实战演练2.1…

【nginx】搭配okhttp 配置反向代理

nginx的默认是一个反向代理。 nginx会默认把输入的请求,转向其他的服务器执行。 这些转向的服务器与客户端发起的服务器不是同一个。 客户端只认识nginx,不知道ngiix转向何方。 正向代理修改okhttp的proxy,实际上很多代理都是正向的。 反向代理修改请求路径到nginx。 感觉还…

react-intl——react国际化使用方案

国际化介绍 i18n&#xff1a;internationalization 国家化简称&#xff0c;首字母首尾字母间隔的字母个数尾字母&#xff0c;类似的还有 k8s(Kubernetes) <br /> React-intl是 React 中最受欢迎的库。 使用步骤 安装 # use npm npm install react-intl -D # use yarn项目…

Weblogic部署

要安装weblogic&#xff0c;首先要有java环境&#xff0c;因此需要先安装jdk。 这里需要注意&#xff0c;weblogic版本不同&#xff0c;对应的jdk版本也不同&#xff0c;我在这里就踩了很多坑&#xff0c;我这里下载的是fmw_12.2.1.4.0_wls_lite_generic.jar对应的是jdk-8u333…

Minitab 的直方图结果分析解释

Minitab 的直方图结果分析解释 步骤 1&#xff1a;评估关键特征 检查分布的尖峰和散布。评估样本数量对直方图外观的影响。 标识尖峰&#xff08;即&#xff0c;条的最高聚类&#xff09;&#xff1a; 尖峰表示样本中最常见的值。评估样本的散布以了解数据的变异程度。例如…

1.1 计算机网络基本概述

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1. 边缘部分2. 核心部分 六、网络协议 前言 计算机网络是现代信息社会…

时序必读论文08|ITransformer论文解读和我对时序工作未来的展望

论文标题&#xff1a;iTransformer: Inverted Transformers Are Effective for Time Series Forecasting 下载地址&#xff1a;https://arxiv.org/abs/2310.06625 开源代码&#xff1a;https://github.com/thuml/iTransformer 前言 ITransformer这篇文章我很早之前就留意到…

如何用Appium实现移动端UI自动化测试?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门&#xff0c;那么我们就直奔主题。文章结构如下&#xff1a; 为什么要使用App…

java程序员入行科目一之CRUD轻松入门教程(一)

之前在操作MySQL的时候&#xff0c;都是采用Navicat&#xff0c;或者cmd黑窗口。 无论使用什么方式和MySQL交互&#xff0c;大致步骤是这样的 建立连接&#xff0c;需要输入用户名和密码编写SQL语句&#xff0c;和数据库进行交互 这个连接方式不会变&#xff0c;但是现在需要 基…

苹果系统(MacOS)中的Finder如何方便展现根目录

前言 初用Finder的时候&#xff0c;感觉非常的不方便。没有Windows的文件管理器来的简单明了。 本文&#xff0c;就是针对找不到文件根目录和隐藏文件夹的设置&#xff0c;进行了说明&#xff0c;供大家参考。 1、设置前 打开Finder&#xff0c;看不到DISK&#xff0c;也就是…

理解前向传播、反向传播和计算图

1. 什么是前向传播&#xff1f; 前向传播&#xff08;Forward Propagation&#xff09;是神经网络的推理过程。它将输入数据逐层传递&#xff0c;通过每一层的神经元计算&#xff0c;最终生成输出。 前向传播的公式 假设我们有一个简单的三层神经网络&#xff08;输入层、一…