SpringCloud笔记六:分布式链路追踪系统Sleuth和ZipKin

SpringCloud笔记六:分布式链路追踪系统Sleuth和ZipKin

文章目录

      • SpringCloud笔记六:分布式链路追踪系统Sleuth和ZipKin
        • 微服务下链路追踪
        • 分布式链路追踪组件Sleuth
        • 链路组件Sleuth常见问题
        • 可视化链路跟踪系统Zipkin
        • 链路追踪组件Zipkin+Sleuth

微服务下链路追踪

  1. 链路系统就是追踪数据在各个服务传递的情况。可以通过链路追踪系统知道那个系统传递的比较慢。

分布式链路追踪组件Sleuth

  1. 什么是Sleuth

一个组件,专门用于追踪每个请求的完整调用链路。做日志埋点。

  1. 官方学习文档

Sleuth官方文档

  1. 引入Sleuth后,console会打印一些信息

[api-gateway,e4686f96e42f9d3c,e4686f96e42f9d3c,false]

第一个:是服务名

第二个:是e4686f96e42f9d3c,这个是sleuth生成的一个ID,叫TraceID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID

第三个:spanID,基本的工作单元,获取元数据,如发送一个http

第四个:false,是否要将该信息输出到zipkin服务中来收集和展示。

链路组件Sleuth常见问题

  1. 日志级别问题:会出现有的服务没有TraceId和spanID

解决方案:

​ 1、添加LoggerBack日志,通过打点日志得以解决。

​ private final Logger logger=LoggerFactory.getLogger(getClass());

​ logger.info(“service findById”);

可视化链路跟踪系统Zipkin

  1. 什么是Zipkin

官网:https://zipkin.io/

大规模分布式系统的APM工具:基于Google Dapper的基础实现和Sleuth结合可以提供可视化界面分析调用链路耗时情况。

  1. 同类产品

鹰眼(EagleEye)

twitter开源Zipkin结合Sleuth

pinpint,运用javaAgent字节码增强技术

StackDriver Trace(google)

  1. 开始使用

Zipkin组成:Controller,Storage,Restful,API,Web UI组成。

  1. OpenTracing知识扩展

OpenTrancing 已经进入CNCF,正在为全球的分布式追踪,提供统一的概念和数据标准。通过提供平台无关,厂商无关的API,使得开发人员能够方便的添加或更换追踪系统的实现。

推荐阅读

链路追踪组件Zipkin+Sleuth

  1. 官方文档

zipkin官方文档

  1. Sleuth和Zipkin关系

Sleuth收集跟踪信息通过http请求发送给zipkin Server,zipkinServer进行跟踪信息的存储以及提供Rest API即可,Zipkin UI调用其API接口进行数据展示。

默认存储是内存,也可用mysql,ElasticSearch等存储。

  1. 加入依赖
<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-zipkinartifactId>
dependency>

这个依赖里面又包含 spring-cloud-starter-sleuth、spring-cloud-sleuth-zipkin

  1. 配置basse-url 这个是访问zipkin的路径
spring:
  zipkin:
    base-url: http://localhost:9411/
  1. 配置采样百分比:生产环境默认配置,10%,测试环境可以配置100%
spring:
  zipkin:
    base-url: http://localhost:9411/
  sleuth:
    sampler:
      probability: 1

推荐资料

重要推荐资料

你可能感兴趣的:(springCloud笔记)