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

文章目录

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

bash 复制代码
tar -zxvf apache-skywalking-apm-10.0.0.tar.gz
mv apache-skywalking-apm-bin skywalking

3. 初始化数据库

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

bash 复制代码
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配置

bash 复制代码
vi ~/.bash_profile
yml 复制代码
# 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
bash 复制代码
source ~/.bash_profile

6. 启动

bash 复制代码
sh startup.sh

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

后端服务 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 环境变量

bash 复制代码
SW_AGENT_NAME=gateway-service;SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.137.192:11800

3.2 JVM参数

bash 复制代码
-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结合起来能够事半功倍,给我们带来更多的震撼和期待。

相关推荐
从琳开始9892 分钟前
从Socket到TCP回显服务器:Java网络编程完整指南
java·服务器·网络·tcp/ip·java-ee
养军博客2 分钟前
Spring Security 4.x / 5.x / 6.x 配置全对比:前后端不分离与前后端分离
java·后端·spring·springsecurity
wifi___3 分钟前
SpringBoot自动装配原理
java·spring boot·后端
SL_staff33 分钟前
制造订单交付闭环实践:用跨部门计划模板解决缺料-停机-返工三角死循环
java·开源·产品
device_Any36 分钟前
接口文档写着三个字段,接口返回了五个
android·java·linux
Small-Young37 分钟前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·spring boot·mysql·postgresql·乐观锁·并发控制
Wang's Blog42 分钟前
Java 项目实战: 交友项目 - 小视频模块实战:访客记录、FastDFS 存储与 SpringCache 缓存
java·缓存·交友
香蕉大香蕉(06敬畏市场)1 小时前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
java_nnnn1 小时前
Spring IoC & DI 从入门到理解:控制反转、依赖注入与 Bean 管理详解
数据库·sql·spring
吹什么轩2 小时前
constexpr 完全指南:从 const 的两种含义,到编译期计算的四次演进
java·前端·javascript