Bootstrap

sleuth(1):sleuth + zipkin实战

1、什么是链路监控?

      链路监控指的是,监控程序运行的整个调用链,简单来说就是服务之间的相互调用的整个链路,例如我们的网关服务 call 用户服务,然后用户服务 call 订单服务,那么这个调用链路就是如下流程:

          用户 ---------> 网关服务 ------> 用户服务 ---------> 订单服务,这个链路中回发起3次请求,分别如下:

          request1:用户请求网关服务

          request2:网关服务调用用户服务

          request3:用户服务调用订单服务

          那么我们如何来监控这个歌调用链路的执行情况呢?这个时候链路监控就上场了,在行业内链路监控的产品是比较多的,例如美团的CAT、spring-cloud的sleuth、shywallking等产品。

2、spring-cloud的sleuth链路监控的基本实现思想:

     spring-cloud的sleuth 链路监的思想就是如下图:

                     

                     TraceId 表示本次链路调用的id本次链路监控只有一个,span表示整个链路调用中的某个请求,在spring-cloud-sleuth中埋点后采集的数据如下:

                          用户 -----> gateway-service:  gateway-service服务接收到请求的时候埋点生成 traceId = 618dfe6d1941750e  spanId = 618dfe6d1941750e 

                          gateway-service -------> user-service: user-service接收到请求的时候埋点生成 spanId = 618dfe6d1941750e 然后也会接收  gateway-service 发来的tranceId = 618dfe6d1941750e 

                          user-service -------> order-service: user-service接收到请求的时候埋点生成 spanId = 2ee8c038590ab541 然后也会接收  user-service 转发来的tranceId = 618dfe6d1941750e 

                          这些埋点的生成的数据都可以上报到zipkin里面进行数据展示。

 

3、实战spring-cloud-sleuth + zipkin 实现链路监控:

      3.1、需要在整个链路中调用到的服务都添加如下两个依赖以及配置项:

               依赖jar:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

               配置项:

       #配置zipkin的服务地址,也就是埋点数据上报的服务
       spring.cloud.zipkin.base-url=http://localhost:9411

       #配置埋点数据的上报百分比,我们选择100%上报
       spring.cloud.sleuth.sampler.probability=1.0

 

      3.2、启动zipkin服务:

              先下载zipkin服务的可执行jar包,下载地址为https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/ 选择一个版本,然后下载其中的 zipkin-server-${version}-exec.jar,然后直接java -jar zipkin-server-${version}-exec.jar 即可,zipkin默认监听的端口是9411,我们使用浏览器进行访问,http://localhost:9411/zipkin/ , 可以得到如下页面:

               

                 接下来我们进行链路执行,然后点击Find Traces 进行查看,得到如下页面:

                         

                              我们可以找到一个链路的埋点数据,点击查看详细:

                                   

                           

                                         以上就是spring-cloud-sleuth + zipkin的实战。

 

 

 

 

 

 

 

;