• Spring Cloud Alibaba学习07Sleuth基本使用


    随着服务越来越多,对调用链的分析会越来越复杂。

    存在的问题:

    1.微服务之间的调用错综复杂,用户发送请求经历哪些服务,调用链不清楚,没有一个自动化工具来维护调用链。

    2.无法快速定位调用链中哪个环节出了问题。

    3.无法快速定位调用链中哪个环节比较耗时。

    Spring Cloud Sleuth提供分布式系统中链路追踪解决方案。

    同类产品有:

    1.SkyWallking:

    是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端悟代码侵入。目前已加入Apache孵化。

    2.cat是大众点评开源,基于java开发的实时应用监控平台,包括实时应用监控,业务监控。集成方案是通过代码埋点的方式实现监控。

    Sleuth术语:

    1.span(跨度):

    基本的工作单元。span用一个64位的id唯一标示。

    除ID外,span还包含其他数据,例如描述,时间戳事件,键值对的注解(标签),spanID,span父ID等。

    span被启动和停止时,记录了时间信息。初始化span被称为"root span",该span的id和trace的ID相等。

    2.trace(跟踪):

    一组共享"root span"的span组成的树状结构称为trace。

    trace也是用一位64位的ID唯一标识,trace中的所有span都共享trace的ID。

    3.annotation(标注):

    annotation用来记录事件的存在,其中,核心annotation用来定义请求的开始和结束。

    3.1 CS(Client Sent 客户端发送):客户端发起一个请求,该annotation描述span的开始

    3.2 SR(Server Received服务器端接收):服务器端得到请求并准备处理它。如果用SR减去CS时间戳,就可以得到网络延迟。

    3.3 SS(Server Sent服务器端发送):该annotation表明完成请求处理(当响应发回客户端时)。如果用SS减去SR时间戳,就能得到服务器端处理请求所需的时间。

    3.4 CR(Client Received客户端接收):span结束的标识。客户端成功接收到服务器端的响应。如果用CR减去CS的时间戳就可以得到从客户端发送请求到服务端响应的所需的时间。

    sr - cs = 网络延时
    
    ss - sr = 服务器上的请求处理时间
    
    cr - ss = 响应网络延时
    
    cr - cs = 请求的总时间

    Zipkin:可以与Sleuth结合使用,将Sleuth的数据展示出来。

    Zipkin下载地址:Central Repository: io/zipkin/zipkin-server (maven.org)

    下载后使用命令启动zipkin控制台

    java -jar zipkin-server-2.14.1-exec.jar --server.port=9999

    代码示例:

    在cloud-goods中写一个action调用cloud-jifen,在cloud-jifen调用cloud-order。

    形成一个调用链。

    cloud-goods、cloud-jifen、cloud-order都做如下两项设置,

    1.pom文件添加依赖:

    <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>

    2.配置文件中增加sleuth和zipkin的配置:

    spring:
      zipkin:
        base-url: http://localhost:9999
        discovery-client-enabled: false #不在nacos注册
      sleuth:
        sampler:
          rate: 100 #采样率

    配置完成后,重新启动服务。

    再发送请求,即可在zipkin的控制台看到请求的链路信息:

     

  • 相关阅读:
    HDU 1075 What Are You Talking About(字典树)
    HDU 1075 What Are You Talking About (stl之map映射)
    HDU 1247 Hat’s Words(字典树活用)
    字典树HihoCoder
    HDU 1277全文检索(字典树)
    HDU 3294 Girls' research(manachar模板题)
    HDU 3294 Girls' research(manachar模板题)
    HDU 4763 Theme Section(KMP灵活应用)
    Ordering Tasks UVA
    Abbott's Revenge UVA
  • 原文地址:https://www.cnblogs.com/asenyang/p/15546064.html
Copyright © 2020-2023  润新知