SpringCloud(8) ------>Sleuth链路跟踪

一、简介

  随着系统越来越庞大,各个服务间的调用关系也变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,经过的每一个服务都有可能发生延迟或错误,从而导致请求失败。这时候就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,解决问题。

二、客户端配置

1、向pom文件中添加依赖

      <!--添加链路追踪开始-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>
       <!--添加链路追踪结束-->

2、application.yml文件中添加配置

spring:
  #设置链路追踪
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      probability: 0.1 #设置Sleuth的抽样收集概率,0.1表示10%

三、整合Zipkin获取及分析日志

  Zipkin是Twitter的一个开源项目,可以用来获取和分析Spring Cloud Sleuth 中产生的请求链路跟踪日志,它提供了Web界面来帮助我们直观地查看请求链路跟踪信息。

1zipkin-serve下载地址

https://zipkin.io/pages/quickstart.html

2、zipkin-serve启动:

java -jar zipkin-server-2.12.9-exec.jar

3、Zipkin页面访问地址:http://localhost:9411

  1)访问成功界面如下:

  2)查询请求响应时间等

  3)查询服务之间的依赖关系

四、使用Elasticsearch存储跟踪信息

  如果zipkin-server重启一下就会发现刚刚的存储的跟踪信息全部丢失了,可见其是存储在内存中的,有时候我们需要将所有信息存储下来,这里将信息存储到Elasticsearch。

1、安装Elasticsearch并启动

  参考:https://www.cnblogs.com/donleo123/p/14155322.html

2、修改zipkin-server的启动参数

zipkin:
  base-url: http://localhost:9411
sleuth:
  sampler:
    probability: 0.3 #设置Sleuth的抽样收集概率

3、启动zipkin

java -jar  zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=localhost:9200

参数说明:

  • STORAGE_TYPE:表示存储类型
  • ES_HOSTS:表示ES的访问地址

更多的参数可参考路径:

https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage

4、通过kibana到http://localhost:5601 查看链路情况

原文地址:https://www.cnblogs.com/donleo123/p/14279047.html