spring-cloud-sleuth

sleuth

分布式跟踪解决方案
  • 日志打印图示
    spring-cloud-sleuth_第1张图片
参数分析

日志的格式为:[applicationName, tracedspanld, export], Sleuth可以在发起每个请求时生成traceld、spanld,同一个请求链路的traceid是一样的,每次调用生成的spanid的值是不一样的。

  • applicationName
应用的名称,也就是application.properties中的spring.application.name属
性的值.
  • traceId
一个请求分配的ID号,用来标识一条请求链路.
  • spanid
表示一个基本的工作单元,一个请求可以包含多个步骤,每个步骤都拥有自己的
spanld
  • export
表示是否要将该信息输出到类似Zipkin这样的追踪服务端进行收集和展示。
  • 相关依赖
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
  • 配置项
#是否开启sleuth
spring.sleuth.enabled=true

Zipkin

ZipkinTwitter的一个开源项目,它致力于收集服务的实时数据,以解决微服务架构中的延迟问题,
包括数据的收集、存储、查找和展现。我们可以使用它来收集各个服务器上请求链路的追踪数据,并通过
它提供的REST API接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系
统中出现的延迟升高问题并找出系统性能瓶颈的根源。除了面向开发的API接口之外,它也提供了方便
的UI组件来帮助我们直观的搜索跟踪信息和分析请求链路明细,比如:可以查询某段时间内各用户请
求的处理时间等。Zipkin提供了可插拔数据存储方式:In-MemoryMySqL Cassandra以及
Elasticsearch.
zipkin-server 安装

spring-cloud-sleuth_第2张图片

Zipkin&Elasticsearch 集成

Zipkin默认是将监控数据存储在内存的,如果Zipkin服务挂掉或重启的话,那么监控数据就会丢失。如
果想要搭建生产环境下可用的Zipkin,就需要实现监控数据的持久化。前面提到过,Zipkin提供了可插
拔数据存储方式,如In-MemoryMySqlCassandra以及Elasticsearch,接下来演示如何使用
Elasticsearch作为Zipkin的持久化方案。
Elasticsearch 集成步骤

spring-cloud-sleuth_第3张图片

你可能感兴趣的:(spring,java,spring,cloud)