天天看点

尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)

一:概述

              1)为什么会出现这个技术?需要解决哪些问题?

尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)

              2)是什么:(一个软监控,一个展现(zipkin),Sleuth 整合了 Zipkin)

                           a:官网:

                           b:Spring Cloud Sleuth :提供了一台完整的服务跟踪的解决方案:

                           c:在分布式系统中,提供追踪解决方案 并且 兼容支持了 zipkin:(记录并以网页图形展示)

              3)解决:为服务链路调用监控

二:搭建链路监控步骤

              1)zipkin:

                           a:下载:cloud F 版本起,已经不需要自己构建 zipkin server 客户端了,直接引入 jar 包即可。

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

                           b:运行 jar:

                                       - 名词解释:Trance 类似于 树结构的 Span 集合,表示一条调用链路,存在唯一标识。

                                       - 名词解释:Span 表示 调用链路来源,通俗的理解 span 就是一次请求。(多个 span 构成了 Trance)

尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)

                           c:运行 控制台:

尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)
尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)
尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)

              2)服务提供者:

                           a:cloud-provider-payment-8001:

                           b:POM:

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

                           c:YML:

server:
  port: 8001

spring:
  application:
    name: cloud-provider-payment

  zipkin:
    base-url: http://114.215.173.88:9941
  sleuth:
    sampler:
      # 采样率值,介于 0~1 之间,1 表示全部采集
      probability: 1

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://114.215.173.88:3306/my_database?Unicode=true&characterEncoding=UTF-8&userSSL=false
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml
  type-aliases-package: com.cloud

eureka:
  client:
    # 表示 是否将自己注册进 eureka ,默认为 true
    register-with-eureka: true
    # 是否从 Eureka 抓取自己的注册信息,默认为 true
    #  单节点无所谓,集群必须设置为 true,才能配合 ribbon 使用 负载均衡。
    fetch-registry: true
    service-url:
      # 注册到 Eureka 的地址
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka

  instance:
    instance-id: cloud-provider-payment-8001
    prefer-ip-address: true
    # Eureka 客户端,向服务端发送心跳端时间间隔,单位为秒(默认 30 秒)
    lease-renewal-interval-in-seconds: 1
    # Eureka 服务端,在收到最后一次心跳后,等待的时间上线,单位为秒(默认 90 秒)
    lease-expiration-duration-in-seconds: 2

           

                           d:业务类,PaymentController:

@RestController
public class GetPaymentLBController {

    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/getPaymentLB/zipkin")
    public String getPaymentLBZipkin() {
        return serverPort;
    }

}
           

              3)服务消费者:

                           a:cloud-consumer-order-80

                           b:POM:和 8001 一样

                           c:YML:和 8001 一样

                           d:业务类 OrderController:(调用 8001 的 GetPaymentLBController 方法,)

              4)依次启动 eureka 7001/7002/8001/80:80 调用 8001

              5)发开浏览器访问:http://localhost:9411

                           a:可以按照条件 查询,查看链路调用关系。

尚硅谷—Cloud—Sleuth 分布式请求链路跟踪(92~94)