news 2026/4/16 17:15: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/4/15 23:54:40

SkyWalking使用:Spring Boot场景

目录 一、环境准备 二、步骤 1&#xff1a;部署 SkyWalking 服务端&#xff08;OAP UI&#xff09; 1. 下载并解压安装包 2. 配置存储&#xff08;测试 / 生产区分&#xff09; &#xff08;1&#xff09;测试环境&#xff08;H2 内存库&#xff0c;无需额外部署&#xf…

作者头像 李华
网站建设 2026/4/16 13:42:38

2025年12月15日全球AI前沿动态

摘要 本次梳理涵盖2025年12月15日前后全球AI领域核心动态&#xff0c;覆盖模型技术突破、智能体应用落地、机器人与硬件发展、企业布局、行业观点及伦理监管等全维度。国内以智谱、蚂蚁、通义千问、月之暗面等为代表&#xff0c;在开源模型、垂直场景技术应用上成果突出&#x…

作者头像 李华
网站建设 2026/4/16 15:06:36

npm构建工具在Qwen-Image-Edit-2509前端交互层的应用

npm构建工具在Qwen-Image-Edit-2509前端交互层的应用 在电商视觉优化和数字内容创作日益依赖AI的今天&#xff0c;一个强大模型背后是否具备流畅、直观的用户界面&#xff0c;往往决定了它能否真正落地。以Qwen-Image-Edit-2509为例&#xff0c;这款基于通义千问系列升级的专业…

作者头像 李华
网站建设 2026/4/16 17:11:56

DNS推荐神器:上网速度提升300%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个轻量级DNS测速与推荐工具&#xff0c;能够一键测试Google DNS、Cloudflare、OpenDNS等主流公共DNS的响应速度。要求具备&#xff1a;自动化多节点ping测试、DNS解析时间测量…

作者头像 李华
网站建设 2026/4/16 10:52:41

ComfyUI工作流:AI如何重塑你的创意开发流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个ComfyUI工作流演示项目&#xff0c;展示AI如何自动生成节点配置和优化流程。项目应包含以下功能&#xff1a;1. 使用Kimi-K2模型分析用户输入的需求描述&#xff0c;自动生…

作者头像 李华
网站建设 2026/4/16 9:18:44

效率对比:XUnity翻译 vs 传统游戏本地化方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个对比测试工具&#xff0c;能够自动统计使用XUnity翻译和传统人工翻译在相同游戏项目上的各项指标&#xff1a;包括耗时、成本、翻译准确率和后期修改次数。要求生成可视化报…

作者头像 李华