Spring Cloud —— SkyWalking (二)

4. 术语介绍

4.1 APM

Application Performance Monitor 应用性能监控,帮助程序员优化系统性能的技术体系。

作用:收集,分析和可视化应用程序的运行时数据(如 响应时间、吞吐量、错误率等)。

前文的 CAT 和 SkyWalking 就是 APM 工具。

4.2 OAP

Observability Analysis Platform 观测分析平台。

SkyWalking 架构通常包含 三个主要组件:探针(A gent),后端(B ackend),和前端(UI)。

OAP 是后端的重要组成,任务是 接受处理存储 探针给的可观测数据 ,并生成聚合指标

4.3 Agent

探针,轻量数据采集 组件,通过 字节码植入 技术,无侵入收集程序运行时数据。

4.4 UI

前端的可视化界面。

其通过 RESTful API 从 OAP 获取数据,支持图表化展示与交互式筛选,提供 Web 控制台,展示服务拓扑、调用链路、实时指标、告警信息等。

4.5 Metrics

指标,如服务响应时间,服务成功率等

4.6 Endpoint

服务实例中 接受,处理外部请求的具体入口点。比 service 更细粒度的监控单元,用于描述服务内部的接口和方法级别的访问路径。

在这里可以粗暴的理解为服务的接口。

5. 安装部署 SW

5.1 下载

下载地址:https://skywalking.apache.org/downloads/

这里我们下载:SkyWalking APM (10.2.0)和 Java Agent(9.4.0)。

8.8.0 之后,apm 和 agent 就分开安装了

如果没有找到这个版本,就翻到网页最下面的链接,跳转下载对应版本。

解压这两个文件,并在 \apache-skywalking-apm-10.2.0\apache-skywalking-apm-bin的下创建 agent 文件夹,

将刚才解压的 agent 包的全部内容(如下图),剪切到创建的 agent 文件夹下。

5.2 web 界面配置

配置 web 界面的端口:
\apache-skywalking-apm-10.2.0\apache-skywalking-apm-bin\webapp 下的 application.yml 文件。8080 是 tomcat 的默认端口,不该这里,就改服务的端口。

skywalking-oap-server 服务(oap模块的实际运行实例)启动后,会暴露 11800 和 12800 两个端口

11800:grpc 端口,接受 skywalking agent 的监控数据

12800: REST API 端口,提供 RESTful API 服务,供 skywalking UI 或其他外部系统调用,用于查询监控数据

5.3 数据库配置

5.3.1 相关知识简介

skywalking 支持多种存储,这里介绍几种:

  1. H2

    2025 年前,一直是 sw 的默认的,直接启动不用配置。

    其采用 内存模式,随让可以直接上手,但是 H2 的该模式会在运行约 20 分钟后,丢失数据,且其行为没有任何预警。

    后采用 BanyanDB 作为默认配置。

    相关文章:2025 年的首次公告:永久移除 H2 存储选项

  2. MySql

    skywalking 一直支持 mysql 作为存储选项。

    MySQL 对 中小型规模的数据友好,部署,运维成本低。

    但是 分库分表复杂,不适应千亿级数据的分布式存储需求。 此外,其对时间序列数据的聚合查询速率远低于 ES,复杂查询易成瓶颈。

    适于学习,测试环境,或小数据量环境。

  3. Elasticsearch

    2025 年前,一直是 skywalking 官方推荐的生产环境的存储选项。

    ES 基于倒排索引和分片机制,擅长处理海量时序数据的查询与聚合分析。集群分片后能应对 PB 级数据存储需要。此外,社区支持广泛。

    但是,运维成本高,要单独部署 ES 集群,资源消耗大,性价比不高。

  4. BanyanDB

    skywaling 的原生数据库,2025年已经生产可用。

    主要面向 APM 领域,专为处理 Metrics(指标)、Tracing(追踪)、Logging(日志)三类可观测数据设计。

    BanyanDB 专为云原生架构设计,能够处理更大工作负载,无需担心数据丢失,且设计简单,使用门槛低。

这里使用 MySQL 作为配置,其他的使用和其类似。

5.3.2 驱动放置

将 mysql 的驱动 jar 包放在该路径下
\apache-skywalking-apm-10.2.0\apache-skywalking-apm-bin\oap-libs

5.3.3 配置修改

修改文件,图片中的地方。
\apache-skywalking-apm-10.2.0\apache-skywalking-apm-bin\config\application.yml

这里数据库名字自拟,但是要和 yml 文件中对照。

5.3.4 启动&访问

\apache-skywalking-apm-10.2.0\apache-skywalking-apm-bin\bin

访问http://127.0.0.1:8902/ 如果有如下界面说明配置成功。(首次加载速度较慢)

相关推荐
huipeng9266 小时前
企业级微服务开发实战(一):项目启动与工程化设计
java·开发语言·spring boot·spring cloud·微服务·云原生·架构
java1234_小锋7 小时前
Spring AI 2.0 开发Java Agent智能体 - MCP(模型上下文协议)
java·人工智能·spring·spring ai
辰海Coding9 小时前
MiniSpring框架学习-整合 IoC 和 MVC(NPC)
学习·spring·mvc
辰海Coding13 小时前
MiniSpring框架学习-为什么一个请求访问 /helloworld,最后能调用到某个 Controller 方法?原始 MVC实现
java·学习·程序人生·spring·mvc
杨运交14 小时前
[020][缓存模块]基于 BeanCreator 的缓存管理器创建器模式设计与实践
java·spring·缓存
会编程的土豆16 小时前
消息队列(MQ)入门笔记
java·笔记·spring
彦为君16 小时前
JavaSE-11-ByteBuffer(NIO核心组件)
java·开发语言·前端·数据库·后端·spring·nio
一切顺势而行16 小时前
easysearch 安装
spring·spring cloud·微服务
Jing_jing_X17 小时前
DeepSeek 的上下文缓存是什么?它和程序里的 Redis 缓存一样吗?
redis·spring·缓存·ai
RelishCoding17 小时前
SpringMVC-01
后端·spring