news 2026/1/14 9:13:46

SkyWalking使用:Spring Cloud Alibaba场景

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SkyWalking使用:Spring Cloud Alibaba场景

目录

一、环境准备

二、步骤 1:部署 SkyWalking 服务端(OAP + UI)

1. 下载并解压 SkyWalking 安装包

2. 配置存储介质(核心:推荐 Elasticsearch)

3. 启动 OAP 和 UI

4. 验证服务端启动

三、步骤 2:Spring Cloud Alibaba 应用接入 SkyWalking Agent

1. 拷贝 SkyWalking Agent 到应用服务器

2. 配置 Agent(可选,也可通过启动参数覆盖)

3. 应用启动时挂载 Agent

4. 多环境 / 容器化部署适配

(1)Spring Boot 多环境配置(无侵入)

(2)Docker 部署(Dockerfile 示例)

(3)K8s 部署(ConfigMap + 启动参数)

四、步骤 3:验证集成效果

五、关键扩展:日志与链路 TraceID 关联(可选)

1. 引入依赖(无需新增,Spring Cloud Alibaba 通常已包含)

2. 修改 logback.xml 配置

六、常见问题与解决方案

七、生产环境最佳实践


在 Spring Cloud Alibaba 项目中集成 Apache SkyWalking 核心是部署 SkyWalking 服务端+应用接入 SkyWalking Agent,全程无侵入业务代码,以下是分步实操指南(基于 SkyWalking 9.x 版本,适配 Spring Cloud Alibaba 2022.x/2021.x 主流版本)。

一、环境准备

组件版本建议说明
Spring Cloud Alibaba2021.0.5.0 / 2022.0.0.0主流稳定版本
SkyWalking9.7.0(最新稳定版)包含 Agent/OAP/UI
JDK8+/11+适配 Spring Cloud 版本
存储介质Elasticsearch 7.17.x推荐(也支持 MySQL/H2)

二、步骤 1:部署 SkyWalking 服务端(OAP + UI)

SkyWalking 服务端包含 OAP Server(数据处理 / 存储)和 UI(可视化),支持单机 / 集群部署,这里先讲单机快速部署

1. 下载并解压 SkyWalking 安装包

bash

运行

# 下载(也可官网手动下载:https://skywalking.apache.org/downloads/) wget https://archive.apache.org/dist/skywalking/9.7.0/apache-skywalking-apm-9.7.0.tar.gz # 解压 tar -zxvf apache-skywalking-apm-9.7.0.tar.gz cd apache-skywalking-apm-bin
2. 配置存储介质(核心:推荐 Elasticsearch)

默认使用 H2 内存数据库(仅测试用),生产需改为 Elasticsearch:编辑config/application.yml,修改存储配置:

yaml

storage: selector: ${SW_STORAGE:elasticsearch} elasticsearch: namespace: ${SW_NAMESPACE:""} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200} # ES 地址 protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"} connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000} socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
3. 启动 OAP 和 UI

bash

运行

# 启动 OAP Server(后台运行) nohup bin/oapService.sh > oap.log 2>&1 & # 启动 UI 服务(后台运行) nohup bin/webappService.sh > ui.log 2>&1 &
4. 验证服务端启动
  • OAP 默认端口:11800(Agent 上报)、12800(UI 调用)
  • UI 访问地址:http://{服务器IP}:8080(默认账号 / 密码:admin/admin)
  • 若 UI 能正常打开,说明服务端部署成功。

三、步骤 2:Spring Cloud Alibaba 应用接入 SkyWalking Agent

核心是给应用添加skywalking-agent.jar启动参数,无需修改代码。

1. 拷贝 SkyWalking Agent 到应用服务器

将解压后的apache-skywalking-apm-bin/agent目录拷贝到应用服务器(如/usr/local/skywalking/agent)。

2. 配置 Agent(可选,也可通过启动参数覆盖)

编辑agent/config/agent.config,核心配置:

properties

# 应用服务名(必填,需唯一,对应微服务名称) agent.service_name=${SW_AGENT_NAME:order-service} # OAP Server 地址(必填) collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800} # 日志级别(可选) logging.level=${SW_LOGGING_LEVEL:INFO} # 采样率(可选,默认100%,高流量场景可调低) agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1} # -1 表示全采样
3. 应用启动时挂载 Agent

Spring Cloud Alibaba 应用通常为 Jar 包部署,启动脚本添加-javaagent参数:

bash

运行

java -javaagent:/usr/local/skywalking/agent/skywalking-agent.jar \ -Dskywalking.agent.service_name=order-service \ # 微服务名称(如订单服务) -Dskywalking.collector.backend_service=192.168.1.100:11800 \ # OAP 地址 -Dskywalking.logging.level=INFO \ -jar order-service.jar # 你的应用 Jar 包
4. 多环境 / 容器化部署适配
(1)Spring Boot 多环境配置(无侵入)

无需改代码,仅需在启动脚本中区分环境:

bash

运行

# 测试环境 java -javaagent:/usr/local/skywalking/agent/skywalking-agent.jar \ -Dskywalking.agent.service_name=order-service-test \ -Dskywalking.collector.backend_service=test-oap:11800 \ -jar order-service.jar --spring.profiles.active=test
(2)Docker 部署(Dockerfile 示例)

dockerfile

FROM openjdk:8-jre-slim # 拷贝 Agent 到镜像 COPY skywalking-agent /usr/local/skywalking/agent # 拷贝应用 Jar 包 COPY target/order-service.jar /app.jar # 启动命令 ENTRYPOINT ["java", \ "-javaagent:/usr/local/skywalking/agent/skywalking-agent.jar", \ "-Dskywalking.agent.service_name=order-service", \ "-Dskywalking.collector.backend_service=oap-server:11800", \ "-jar", "/app.jar"]
(3)K8s 部署(ConfigMap + 启动参数)
  1. 将 Agent 包通过 ConfigMap/Volume 挂载到 Pod;
  2. 在 Deployment 的command中添加 Agent 参数:

yaml

apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 template: spec: volumes: - name: skywalking-agent configMap: name: skywalking-agent-config containers: - name: order-service image: order-service:v1 command: ["java"] args: - "-javaagent:/usr/local/skywalking/agent/skywalking-agent.jar" - "-Dskywalking.agent.service_name=order-service" - "-Dskywalking.collector.backend_service=oap-service:11800" - "-jar" - "/app.jar" volumeMounts: - name: skywalking-agent mountPath: /usr/local/skywalking/agent

四、步骤 3:验证集成效果

  1. 启动 Spring Cloud Alibaba 微服务(如订单、商品、用户服务);
  2. 访问微服务接口(触发服务间调用);
  3. 打开 SkyWalking UI,验证核心功能:
    • 服务拓扑仪表盘 > 服务拓扑图,能看到微服务间的调用关系;
    • 链路追踪追踪 > 调用链,可筛选服务名,查看具体请求的全链路;
    • 指标监控仪表盘 > 服务仪表盘,查看 QPS、响应时间、错误率等指标;
    • 日志关联:若需日志链路关联,需额外配置(见下文扩展)。

五、关键扩展:日志与链路 TraceID 关联(可选)

SkyWalking 可将日志与 TraceID 绑定,通过 TraceID 一键查日志,需配置日志框架(以 Logback 为例):

1. 引入依赖(无需新增,Spring Cloud Alibaba 通常已包含)

xml

<dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-logback-1.x</artifactId> <version>9.7.0</version> <!-- 与 SkyWalking 版本一致 --> </dependency>
2. 修改 logback.xml 配置

添加 SkyWalking 日志转换器,输出 TraceID:

xml

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} - %msg%n</Pattern> <!-- %tid 会自动替换为 SkyWalking 的 TraceID --> </layout> </encoder> </appender>

重启应用后,日志中会包含TraceID,在 SkyWalking UI 中通过 TraceID 可直接关联日志。

六、常见问题与解决方案

问题现象排查方向
UI 无服务数据1. Agent 配置的 OAP 地址是否正确;2. 11800 端口是否开放;3. 服务名是否配置
链路不完整1. 微服务间调用是否使用 Spring Cloud 原生组件(OpenFeign/Ribbon);2. Agent 插件是否适配框架版本
性能影响大1. 调低采样率(如agent.sample_n_per_3_secs=10,每 3 秒采样 10 个);2. 开启 Agent 异步上报
ES 存储报错1. ES 版本是否兼容(SkyWalking 9.x 推荐 ES 7.x);2. ES 集群是否正常

七、生产环境最佳实践

  1. OAP 集群部署:多节点部署 OAP Server,通过注册中心(如 Nacos)实现负载均衡;
  2. Agent 缓存优化:开启 Agent 本地缓存,避免 OAP 宕机时数据丢失;
  3. 采样率调优:高流量场景(QPS > 10000)将采样率设为 10%~20%,平衡性能与监控粒度;
  4. 数据清理:配置 ES 索引生命周期(ILM),定期清理过期监控数据;
  5. 告警配置:在 SkyWalking UI 中配置服务响应时间、错误率告警,对接钉钉 / 邮件。

通过以上步骤,即可在 Spring Cloud Alibaba 项目中完整接入 SkyWalking,实现微服务的全链路追踪、指标监控和日志关联,快速定位生产环境的性能问题和故障。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 20:06:53

Ollama下载GPT-OSS-20B并实现本地化AI服务的完整教程

本地化AI服务的平民化之路&#xff1a;用Ollama运行GPT-OSS-20B 在生成式AI席卷全球的今天&#xff0c;我们早已习惯了与ChatGPT对话、让大模型写代码、甚至靠它构思整篇文章。但你有没有想过——这些看似智能的服务背后&#xff0c;每一次提问都可能被记录、分析&#xff0c;甚…

作者头像 李华
网站建设 2026/1/9 13:36:48

SkyWalking 与 Zipkin、Prometheus 深度对比分析

目录 一、核心定位与设计目标 二、核心功能能力对比 1. 核心能力覆盖&#xff08;√ 支持&#xff0c;△ 部分支持&#xff0c; 不支持&#xff09; 2. 关键能力细节拆解 &#xff08;1&#xff09;分布式链路追踪 &#xff08;2&#xff09;指标监控 &#xff08;3&…

作者头像 李华
网站建设 2026/1/11 23:35:51

gpt-oss-20b结合Dify部署实现可视化AI工作流

gpt-oss-20b 结合 Dify 实现可视化 AI 工作流&#xff1a;开源、可控与低门槛的智能落地路径 在企业对AI能力需求日益增长的今天&#xff0c;一个现实问题摆在面前&#xff1a;如何在保障数据安全的前提下&#xff0c;以可承受的成本快速构建具备专业语义理解能力的智能应用&am…

作者头像 李华
网站建设 2026/1/11 15:11:22

AI自动修复CHLSProxy SSL证书错误:开发者新利器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个智能诊断工具&#xff0c;能够自动检测网页中由CHLSProxy引起的SSL证书错误。工具应包含以下功能&#xff1a;1. 自动识别证书错误类型&#xff08;如过期、不信任等&#…

作者头像 李华
网站建设 2026/1/11 5:25:23

77777

777777

作者头像 李华