美文网首页
全链路追踪spring-cloud-sleuth-zipkin

全链路追踪spring-cloud-sleuth-zipkin

作者: 万事俱备就差一个程序员了 | 来源:发表于2021-09-15 19:40 被阅读0次

    0. 开发环境

    IDE:IntelliJ IDEA 2019.1.2

    JDK:1.8.0_211

    Spring Boot:2.0.9.RELEASE

    Spring Cloud:Finchley.RELEASE

    1. Zipkin简介

    Zipkin是一个开放源代码的分布式的跟踪系统,每个服务向Zipkin报告计时数据,Zipkin会根据调用关系通过Zipkin UI生成依赖关系图。

    2. 创建Zipkin服务

    Spring Boot2.0以后,官方不推荐我们自定义Zipkin服务端,而是使用官方提供的jar包。下载地址:

    https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

    这里我们不使用官方提供的jar包,方便我们以后扩展。

    2.1 新建Zipkin服务

    新建Zipkin服务spring-cloud-zipkin

    2.2 引入依赖

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

            </dependency>

            <dependency>

                <groupId>io.zipkin.java</groupId>

                <artifactId>zipkin-server</artifactId>

                <version>2.11.7</version>

            </dependency>

            <dependency>

                <groupId>io.zipkin.java</groupId>

                <artifactId>zipkin-autoconfigure-ui</artifactId>

                <version>2.11.7</version>

            </dependency>

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    2.3 新建启动类

    @EnableZipkinServer注解表示注册为Zipkin服务

    package cn.wbnull.springcloudzipkin;

    import org.springframework.boot.SpringApplication;

    import org.springframework.boot.autoconfigure.SpringBootApplication;

    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

    import zipkin2.server.internal.EnableZipkinServer;

    @SpringBootApplication

    @EnableEurekaClient

    @EnableZipkinServer

    public class SpringCloudZipkinApplication {

        public static void main(String[] args) {

            SpringApplication.run(SpringCloudZipkinApplication.class, args);

        }

    }

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    2.4 新建application.yml

    server:

      port: 8092

    spring:

      application:

        name: spring-cloud-zipkin

      sleuth:

        sampler:

          probability: 1.0

    management:

      metrics:

        web:

          server:

            auto-time-requests: false

    eureka:

      client:

        register-with-eureka: true

        fetch-registry: true

        service-url:

          defaultZone: http://localhost:8090/springcloudeureka/eureka/

      instance:

        prefer-ip-address: true

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    3. 创建Zipkin客户端

    这里我们直接改造之前的服务spring-boot-provider、spring-boot-provider-v2、spring-boot-consumer-feign-hystrix、spring-cloud-zuul,使其成为Zipkin客户端。所有服务均做如下操作。

    3.1 引入依赖

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-zipkin</artifactId>

            </dependency>

            <dependency>

                <groupId>org.springframework.cloud</groupId>

                <artifactId>spring-cloud-starter-sleuth</artifactId>

            </dependency>

    1

    2

    3

    4

    5

    6

    7

    8

    3.2 修改application.yml

    指定Zipkin服务的地址,日志发送方式为web。

    spring:

      zipkin:

        base-url: http://localhost:8092

        sender:

          type: web

    1

    2

    3

    4

    5

    4.测试

    依次启动spring-cloud-eureka、spring-boot-provider、spring-boot-provider-v2、spring-boot-consumer-feign-hystrix、spring-cloud-zuul、spring-cloud-zipkin

    PostMan多请求几次

    浏览器访问http://localhost:8092/zipkin/,界面如下

    点击Find Traces按钮

    点击某个调用链路之后可以看到该链路的调用详情

    点击某个服务可以查看该服务的调用详情

    菜单栏选择Dependencies还可以查看各服务之间的关系

    ————————————————

    版权声明:本文为CSDN博主「dkbnull」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/dkbnull/article/details/93928005

    相关文章

      网友评论

          本文标题:全链路追踪spring-cloud-sleuth-zipkin

          本文链接:https://www.haomeiwen.com/subject/cfgowltx.html