返回

《宝藏教程》Skywalking 与 Spring Boot 的天作之合

后端

集成 Skywalking:为你的 Spring Boot 微服务带来分布式追踪

摘要

分布式追踪是监控和分析微服务架构中关键交易的手段。Skywalking 作为一款优秀的分布式追踪系统,受到了广泛青睐。本教程将深入探讨如何将 Skywalking 无缝集成到你的 Spring Boot 项目中,从而获得强大的追踪能力。

集成步骤

1. 添加依赖

在 Maven 构建的项目中,添加以下依赖:

<dependency>
  <groupId>org.apache.skywalking</groupId>
  <artifactId>skywalking-spring-boot-starter</artifactId>
  <version>8.7.0</version>
</dependency>

在 Gradle 构建的项目中,添加以下依赖:

compile 'org.apache.skywalking:skywalking-spring-boot-starter:8.7.0'

2. 配置文件

在 resources 目录下创建 application.yml 文件,添加如下配置:

skywalking:
  oap-server: localhost:11800

其中,oap-server 配置项指定了 Skywalking 服务端的地址。

3. 启动 Skywalking 服务端

在本地机器上运行以下命令启动 Skywalking 服务端:

docker run -it --rm -p 11800:11800 apache/skywalking:8.7.0

实操示例

以下是一个 Spring Boot 示例项目,展示了如何使用 Skywalking 追踪 HTTP 请求:

|-- src
    |-- main
        |-- java
            |-- com.example.demo
                |-- DemoApplication.java
                |-- MyController.java
        |-- resources
            |-- application.yml
|-- pom.xml

DemoApplication.java

@SpringBootApplication
@EnableSkyWalking
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

MyController.java

@RestController
public class MyController {

    @GetMapping("/")
    public String hello() {
        return "Hello World!";
    }
}

运行示例

在项目目录下运行以下命令启动 Spring Boot 应用:

mvn spring-boot:run

在浏览器中访问 http://localhost:8080/ 触发 HTTP 请求。

查看追踪结果

在 Skywalking 的控制台中,查看 HTTP 请求的追踪结果,包括请求详细信息、请求路径、耗时和调用链等。

常见问题解答

  • 如何配置多个 Skywalking 服务端?
    在 application.yml 中,添加以下配置:
skywalking:
  oap-server:
    - address1:port1
    - address2:port2
  • 如何自定义追踪报告的频率?

在 application.yml 中,添加以下配置:

skywalking:
  agent:
    report-period: 1000

其中,report-period 指定了报告追踪数据的间隔时间,以毫秒为单位。

  • 如何追踪外部服务调用?

使用 Skywalking 的 Zipkin 依赖。在 application.yml 中,添加以下配置:

skywalking:
  agent:
    trace-plugins:
      zipkin: true
  • 如何启用日志追踪?

在 application.yml 中,添加以下配置:

skywalking:
  agent:
    logging: true
  • 如何设置采样率?

在 application.yml 中,添加以下配置:

skywalking:
  agent:
    sampling:
      percentage: 0.1

其中,percentage 指定了采样率,取值范围为 0.0 到 1.0。

结论

通过将 Skywalking 集成到 Spring Boot 项目中,你可以获得强大的分布式追踪功能,这将极大地帮助你监控和分析你的微服务应用,发现性能瓶颈并优化系统性能。