一个由微服务构成的应用系统通过服务来划分问题域,通过REST请求服务API来连接服务来完成完整业务。对于入口的一个调用可能需要有多个后台服务协同完成,链路上任何一个调用超时或出错都可能造成前端请求的失败。服务的调用链也会越来越长,并形成一个树形的调用链。随着服务的增多,对调用链的分析也会越来越复杂。
针对服务化应用全链路追踪的问题,Google发表了Dapper论文,介绍了他们如何进行服务追踪分析。其基本思路是在服务调用的请求和响应中加入ID,标明上下游请求的关系。利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系。
对应Dpper的开源实现是Zipkin,支持多种语言包括JavaScript,Python,Java, Scala, Ruby, C#, Go等。其中Java由多种不同的库来支持。
Spring Cloud Sleuth是对Zipkin的一个封装,对于Span、Trace等信息的生成、接入HTTP Request,以及向Zipkin Server发送采集信息等全部自动完成。
1. Server 端
1)pom.xml中引入
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-storage-mysql</artifactId>
</dependency>
2)主类开启监控:@EnableEurekaClient,@EnableZipkinServer
3)配置 eureka.instance.client.serviceUrl.defaultZone
4)创建zipkin的db实例,配置用户权限,创建相关表 zipkin_annotations,zipkin_dependencies,zipkin_spans
5)配置zipkin存储的db内容:
zipkin:
ui:
environment: zipkin
storage:
type: mysql
mysql:
host: localhost
port: 3306
db: zipkin
username: username
password: password
2. Client 端
1)pom.xml中引入
<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)配置连接的server端地址及采样率
spring:
zipkin:
enabled: true
base-url: http://localhost:9411
sleuth:
sampler:
#采样率, 默认0.1
percentage: 1.0
注意:
1. db实例,表,需手工创建,否则zipkin-server虽然不会报错,但无法采集数据
2. 每1次request生成一个traceId,中间有N个service层,则生成N个spanId,写入spans,annotaions
相关推荐
Spring Cloud Sleuth、RabbitMQ 和 Zipkin 的组合为这一目标提供了强大的工具。在这个Demo程序中,我们将看到如何利用这些技术进行分布式链路追踪。 首先,Spring Cloud Sleuth 是 Spring Cloud 生态系统中的一个...
Spring Cloud Sleuth 和 Zipkin 是两个非常流行的工具,用于实现微服务架构中的链路追踪。本篇将详细介绍这两个组件以及如何在Windows环境下进行初步使用。 **Spring Cloud Sleuth** Spring Cloud Sleuth 是一个...
spring-cloud微服务框架demo,可以完整运行。这里面包含的组件和内容有: spring cloud eureka,服务注册和服务发现 spring cloud config,动态配置项 ribbon,客户端负载均衡 feign, hystrix,熔断 turbine Spring ...
1. **Spring Cloud Sleuth Stream**: Spring Cloud Sleuth 是一个分布式跟踪解决方案,它集成在 Spring Cloud 生态系统中,提供了对 Zipkin 和 Brave 等追踪系统的支持。Sleuth Stream 模块则利用 Spring Cloud ...
A demo about how to use Spring Cloud Sleuth + Kafka + Zipkin + ElasticSearch 模块介绍 frontend 提供rest接口,处理用户请求,然后转发给backend处理。 backend 提供rest接口,处理fontend的请求。 zipkin-...
SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现仓库追踪 Spring Cloud 阿里巴巴教程 Spring Cloud阿里巴巴教程:使用Nacos作为服务注册发现组件 Spring Cloud阿里巴巴教程:使用Nacos作为配置中心 ...
Spring Cloud Sleuth 将 Zipkin 的功能集成到 Spring 应用中,使得在Spring Cloud环境中实现分布式追踪变得简单。 Sleuth 中的 Span 是基本的工作单元,每个 Span 都有一个唯一的ID,一个trace ID,描述信息,...
本项目"spring-cloud-learning:Springcloud + rabbitmq + kafka + slueth + zipkin + lcn + redis"是针对Spring Cloud的一系列实践教程,涉及到的关键技术包括: 1. **Spring Cloud Eureka**:注册与发现服务,它是...
SpringCloud核心组件Sleuth链路追踪 SpringCloud核心组件Zipkin分布式追踪系统 SpringCloud核心组件Stream消息流处理 SpringCloud核心组件Kafka消息中间件集成 SpringCloud核心组件Gateway新一代API网关 Spring...
spring-cloud-sleuth-zipkin-2.1.0.RELEASE
在使用 Spring Cloud Sleuth 之前,我们需要添加相应的依赖项到我们的项目中,例如添加 spring-cloud-starter-zipkin 依赖项。然后,我们需要配置收集日志的 zipkin 服务器地址。在 application.yml 文件中,我们...
Spring Cloud Sleuth采用了Dapper和log-based追踪的概念,并与Zipkin和HTrace的操作接口进行了封装。Dapper是Google发布的一篇关于分布式系统追踪的论文,log-based追踪则是通过日志的方式记录和分析分布式系统的...
Spring Cloud Sleuth 和 Zipkin 是两个在分布式系统中用于跟踪微服务之间调用的重要工具。本文将深入探讨如何使用它们来提升系统的可监控性和故障排查能力。 首先,Spring Cloud Sleuth 是一个集成在 Spring Boot ...
本项目"microservices-latency-analysis"专注于使用Spring Cloud Sleuth和Zipkin来分析Spring Boot应用程序中的延迟,帮助开发者优化微服务性能。 **Spring Boot** Spring Boot是基于Spring框架的快速开发工具,它...
9. **服务跟踪**:SpringCloud Sleuth和Zipkin提供了分布式跟踪解决方案,可以帮助开发者追踪微服务间的调用链路,定位问题根源。Sleuth将跟踪信息注入到日志,Zipkin收集这些信息并展示为时间线。 10. **持续集成...
Spring Cloud Sleuth 是Spring Cloud生态下的一个子项目,它与Zipkin、HTrace等服务追踪系统集成,帮助我们收集和可视化微服务间的调用链路。Sleuth 自动为我们的微服务请求添加独特的跟踪ID,使得我们可以追踪到...
《SpringCloud集成Zipkin实践详解》 在微服务架构中,服务间的调用变得日益频繁,如何有效地追踪这些调用,以便在出现问题时快速定位,是运维和开发人员面临的挑战。Zipkin,作为一款分布式追踪系统,能很好地解决...
Spring Cloud Sleuth 是一个用于分布式系统跟踪的工具,它是基于 Zipkin 的,可以方便地集成到基于 Spring Boot 和 Spring Cloud 的微服务架构中。通过 Sleuth,我们可以轻松地收集和分析服务间的调用链路数据,从而...
8. **SpringCloud Sleuth**:日志追踪解决方案,它与Zipkin、ELK(Elasticsearch, Logstash, Kibana)等集成,可以帮助开发者分析服务间的调用链路,排查问题。 9. **SpringCloud Stream**:提供了一种声明式的消息...