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

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

文章目录

  • 前言
  • 一、介绍
    • 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.kler.cn/news/304798.html

相关文章:

  • 在AIoT设备上加速深度神经网络推理的进展:一项综述
  • Unreal Engine——AI生成高精度的虚拟人物和环境(虚拟世界构建、电影场景生成)(二)(技术分析)
  • 解决flume在抽取不断产生的日志文件时,hdfs上出现很多小文件的问题
  • UniApp 从Vue2升级为Vue3需要注意哪些方面
  • 微服务-- Sentinel的使用
  • 个人电脑可以当服务器用吗?
  • 服务器基础知识拓展( Linux 网络操作系统 03)
  • 京东广告投放平台整洁架构演进之路
  • 边缘计算智能网关的功能应用与优势-天拓四方
  • ZAB协议(算法)
  • linux配置远程ssh服务
  • Docker基本使用(持续更新中)
  • Spring IOC的应用
  • Vue 3 中 useRouter 与 useRoute 的深度解析
  • 悟空crm客户管理系统二次开发 单独新增表格字段
  • Kafka客户端核心参数详解
  • Java面试篇基础部分-Java注解详解
  • Visual Studio Code 高效开发 C/C++ 插件推荐
  • 开发游戏的学习规划
  • 基于扣子(Coze)打造第一个智能体——个性化对话机器人
  • 智能语音技术在人机交互中的应用与发展
  • 中国农业银行——轻量式云原生应用平台(轻云平台)
  • swiftUI结构体数组修改属性UI没更新
  • Go协程及并发锁应用指南
  • 深入理解Go语言的方法定义与使用
  • 深入理解Go语言中的接口定义与使用
  • 『功能项目』战士职业平A怪物掉血【44】
  • SVM——支持向量机的学习入门
  • 【运维监控】influxdb 2.0+grafana 监控java 虚拟机以及方法耗时情况(完整版)
  • GPS/LBS/Wi-Fi定位,全安排!—合宙Air201资产定位模组LuatOS快速入门04