美文网首页收藏springbootspring boot
SpringBoot集成zipkin实现链路追踪

SpringBoot集成zipkin实现链路追踪

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-12-08 07:11 被阅读0次

    上一篇 <<<链路追踪的实现原理
    下一篇 >>>Zipkin集成RabbitMQ异步传输,并持久化到数据库中


    版本要求

    SpringBoot、OpenFeign和Zipkin都要求2.1.*

    核心代码

    • jar包引入
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.2.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.jgspx</groupId>
        <artifactId>openfeign-msg-service-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.jgspx</groupId>
        <artifactId>openfeign-user-service-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>18.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
        <version>2.1.0.RELEASE</version>
    </dependency>
    </dependencies>
    
    • 相关配置
    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 10.211.55.16:8848
            #feign客户端的命名必须使用中划线,不能使用下划线
      application:
        name: zipkin-user-service
      zipkin:
        base-url: http://127.0.0.1:9411/
      ###全部采集
      # 抽样率,默认是0.1(90%的数据会被丢弃)
      # 这边为了测试方便,将其设置为1.0,即所有的数据都会上报给zipkin
      sleuth:
        sampler:
          probability: 1.0
    

    效果展示

    a、成功链路信息:


    • 项目中获取链路信息:

    request.getHeader("X-B3-TraceId")+",spanid:"+ request.getHeader("X-B3-SpanId")

    • 每一个都是服务端,如果调用其他的话会有客户端的链路


    b、失败链路信息:

    • 错误信息里可以看到具体的错误
    "tags": {
          "error": "Request processing failed; nested exception is java.lang.ArithmeticException: / by zero",
          "http.method": "GET",
          "http.path": "/sendmsg",
          "mvc.controller.class": "MsgServiceImpl",
          "mvc.controller.method": "sendMsg"
        },
    

    推荐阅读:
    <<<分布式链路监控与追踪产生背景
    <<<常用的调用链解决方案
    <<<链路追踪的实现原理
    <<<Zipkin集成RabbitMQ异步传输,并持久化到数据库中
    <<<Zipkin环境搭建

    相关文章

      网友评论

        本文标题:SpringBoot集成zipkin实现链路追踪

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