微服务学习-SkyWalking 实时追踪服务链路

1. 全链路追踪的作用

对请求源头到底层服务的调用链路中间的所有环节进行监控。

2. SkyWalking 是什么?

官方网站:Apache SkyWalking

SkyWalkiing 是分布式系统的应用程序性能监视工具,专为微服务、云原生和基于容器(Docker、K8s、Mesos)架构而设计。

SkyWalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网络遥测分析、度量聚合和可视化一体化解决方案。

3. SkyWalking 整体架构

整体架构分为四个部分:

  • 上部分 Agent:负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器;
  • 下部分 SkyWalking OAP:负责接受 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能;
  • 右部分 Storage:Tracing 数据存储,目前支持 ES、Mysql、Sharding Sphere、TiDB、H2多种存储器,目前采用较多的是 ES,主要考虑 SkyWalking 开发团队自己的生产环境采用 ES 为主;
  • 左部分 SkyWalking UI:负责提供控制台,查询链路等。

4. SkyWalking 环境搭建部署

4.1. 下载 SkyWalking

4.1.1. SkyWalking 的后端服务 OAP+ 可视化 UI

apache-skywalking-apm-10.0.1.tar.gz

下载地址:https://dlcdn.apache.org/skywalking/10.0.1/apache-skywalking-apm-10.0.1.tar.gz

4.1.2. 用于从微服务采集数据的探针

apache-skywalking-java-agent-9.3.0.tgz

下载地址:https://dlcdn.apache.org/skywalking/java-agent/9.3.0/apache-skywalking-java-agent-9.3.0.tgz

4.2. 搭建 SkyWalking OAP 服务

4.2.1. 修改配置
  • 先使用默认的 H2 数据库存储,不用修改 config/application.yml 配置

文件目录:apache-skywalking-apm-10.0.1\apache-skywalking-apm-bin\config

  • SkyWalking-web-ui 服务会占用 8080 端口,修改端口可以修改 webapp/application.yml

文件目录:apache-skywalking-apm-10.0.1\apache-skywalking-apm-bin\webapp

4.2.2. windows 下启动脚本 bin/startup.bat

启动成功后会启动两个服务,一个是 skywalking-oap-server,一个是 skywalking-web-ui;

skywalking-oap-server 服务启动后会暴露 11800 和 12800 两个端口,分别为收集监控数据的端口 11800 和接受前端请求的端口 12800。

4.2.3. 访问UI界面

端口修改为 18080,访问:http://localhost:18080

5. 微服务接入 SkyWalking Agent 探针

5.1. 微服务配置 jvm 参数,接入 skywalking

以订单服务为例,idea 启动配置中配置 skywalking agent

复制代码
-javaagent:D:\icoolkj\apache-skywalking-java-agent-9.3.0\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=icoolkj-mall-order
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=icoolkj-mall-skywalking-server:11800

商品、库存、账户服务都同上增加配置参数。

5.2. 重新启动服务,测试

用户下单,在 SkyWalking UI 界面查看是否有链路数据

注意:没有查看到网关服务的数据问题

  • 通过 maven 查询当前网关使用的依赖版本;
  • 需要找到对应的网关版本,这里找到 4.x 版本,具体路径:

D:\icoolkj\apache-skywalking-java-agent-9.3.0\skywalking-agent\optional-plugins\apm-spring-cloud-gateway-4.x-plugin-9.3.0.jar

  • 将该版本拷贝到 D:\icoolkj\apache-skywalking-java-agent-9.3.0\skywalking-agent\plugins 下
  • 界面查看链路数据

6. 小结

通过 Skywalking 可以实现微服务调用链路追踪。

相关推荐
想做小南娘,发现自己是女生喵1 小时前
第二周学习文档 Linux C 文件操作
linux·c语言·学习
潜心一志1 小时前
图像预处理—— 图像的变换与校正(理论)
学习·计算机视觉
nmjkhome1 小时前
26 疲劳的几个重要概念(第51课)-solid works simulation
学习
程序猿乐锅1 小时前
【从0-1学习Python | 第六篇】 Python 函数:定义、参数与返回值
开发语言·python·学习
燕落南枝1 小时前
HTML 学习:input 单选、复选与文件域详解
服务器·学习·html
银河技术3 小时前
从脚本到 Operator:用 Go 构建可靠的微服务自动扩缩容控制器
开发语言·微服务·golang
草莓熊Lotso5 小时前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
星恒随风13 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_2842740513 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
德林恩宝13 小时前
On-Policy Distillation(OPD)学习文档
人工智能·学习·机器学习·大模型·llm·大模型微调