`
liunancun
  • 浏览: 34522 次
社区版块
存档分类
最新评论

使用 Zipkin 实现链路追踪

 
阅读更多
Docker

docker-compose.yml
services:
  elasticsearch:
    image: openzipkin/zipkin-elasticsearch7
    container_name: elasticsearch
    ports:
      - 9200:9200
  zipkin:
    image: openzipkin/zipkin-slim
    container_name: zipkin
    environment:
      - STORAGE_TYPE=elasticsearch
      - ES_HOSTS=elasticsearch
      - JAVA_OPTS=-Xms4g -Xmx4g -XX:+ExitOnOutOfMemoryError
    ports:
      - 9411:9411
    depends_on:
      - elasticsearch
  dependencies:
    image: openzipkin/zipkin-dependencies
    container_name: dependencies
    entrypoint: crond -f
    environment:
      - STORAGE_TYPE=elasticsearch
      - ES_HOSTS=elasticsearch
      - JAVA_OPTS=-Xms4g -Xmx4g -XX:+ExitOnOutOfMemoryError
    depends_on:
      - elasticsearch


Dubbo

引入依赖
<dependency>
	<groupId>io.zipkin.brave</groupId>
	<artifactId>brave-instrumentation-dubbo</artifactId>
	<version>5.13.9</version>
</dependency>
<dependency>
	<groupId>io.zipkin.reporter2</groupId>
	<artifactId>zipkin-sender-okhttp3</artifactId>
	<version>2.16.3</version>
</dependency>


编写配置
@Configuration
@ConditionalOnProperty("zipkin.base-url")
public class ZipkinConfig
{
    @Value("${spring.application.name:${dubbo.application.name:default}}")
    private String localServiceName;

    @Value("${zipkin.base-url:http://localhost:9411}/api/v2/spans")
    private String endpoint;

    @Bean
    public Tracing tracing()
    {
        return Tracing.newBuilder().localServiceName(localServiceName)
                .addSpanHandler(AsyncZipkinSpanHandler.create(OkHttpSender.create(endpoint))).build();
    }
}


Web

引入依赖
<dependency>
	<groupId>io.zipkin.brave</groupId>
	<artifactId>brave-instrumentation-spring-webmvc</artifactId>
	<version>5.13.9</version>
</dependency>
<dependency>
	<groupId>io.zipkin.reporter2</groupId>
	<artifactId>zipkin-sender-okhttp3</artifactId>
	<version>2.16.3</version>
</dependency>


编写配置
@Configuration
@ConditionalOnProperty("zipkin.base-url")
@Import({DelegatingTracingFilter.class, SpanCustomizingAsyncHandlerInterceptor.class})
public class WebZipkinConfig implements WebMvcConfigurer
{
    @Resource
    private SpanCustomizingAsyncHandlerInterceptor interceptor;

    @Resource
    private Tracing tracing;

    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        registry.addInterceptor(interceptor);
    }

    @Bean
    public HttpTracing httpTracing()
    {
        return HttpTracing.create(tracing);
    }
}
分享到:
评论

相关推荐

    Java开发案例-springboot-28-整合Zipkin实现分布式链路追踪-源代码+文档.rar

    Java开发案例-springboot-28-整合Zipkin实现分布式链路追踪-源代码+文档.rar Java开发案例-springboot-28-整合Zipkin实现分布式链路追踪-源代码+文档.rar Java开发案例-springboot-28-整合Zipkin实现分布式链路追踪-...

    spring-cloud 整合zipkin实现链路追踪 Demo

    本教程将介绍如何整合 Spring Cloud 与 Zipkin 来实现链路追踪,并通过一个简单的 Demo 进行演示。 首先,我们需要理解 Zipkin 的核心概念。Zipkin 是由 Twitter 开源的,其设计灵感来源于 Google 的 Dapper。它...

    zipkin_rabbitmq链路追踪.zip

    总之,Zipkin_RabbitMQ链路追踪是一个强大的工具,它利用RabbitMQ作为中间件来实现分布式系统的追踪数据收集,结合Zipkin的分析能力,为企业提供了一种有效的监控和故障排查手段。在微服务架构中,理解和掌握这一...

    zipkin&Sleuth链路追踪.zip

    而 Sleuth 是一个 Spring Cloud 的模块,它为 Spring Boot 应用提供了自动化的分布式追踪功能,它与 Zipkin 集成,简化了链路追踪的实现。 【描述】"完整的代码和文档。包括安装包" 暗示了这个压缩包不仅包含了源...

    SpringBoot(43) 整合Zipkin实现分布式链路追踪

    SpringBoot(43) 整合Zipkin实现分布式链路追踪

    Spring Cloud Sleuth+RabbitMQ+Zipkin实现分布式链路追踪Demo程序

    总结来说,Spring Cloud Sleuth+RabbitMQ+Zipkin的结合提供了一套强大的解决方案,帮助我们在微服务环境中实现分布式链路追踪。通过这个Demo程序,我们可以学习如何配置和使用这些工具,以便更好地理解和调试我们的...

    (十六)Sleuth + Zipkin实现微服务调用链路追踪

    (十六)Sleuth + Zipkin实现微服务调用链路追踪

    SpringBoot+Logback实现一个简单的链路追踪功能

    总结来说,通过结合Spring Boot、Logback和MDC,我们可以轻松地在日志中添加自定义信息,实现链路追踪功能。这不仅有助于在生产环境中快速定位问题,还可以为性能优化和用户体验改进提供有价值的数据。不过,要注意...

    「Java分享客栈」随时用随时翻:微服务链路追踪之zipkin搭建.doc

    Java微服务链路追踪之Zipkin搭建 ...通过以上步骤,我们可以成功搭建Zipkin微服务链路追踪系统,并与SpringCloud和RabbitMQ进行整合,实现链路追踪的功能。这将大大提高微服务系统的可维护性和可靠性。

    微服务调用链路追踪详解教程Zipkin.docx

    总之,服务调用链路追踪和Zipkin的结合使用,为微服务架构带来了强大的监控能力,使得问题排查和性能优化更为高效。通过Sleuth的自动日志注入和Zipkin的数据收集与展示,我们可以清晰地看到请求在分布式系统中的流转...

    SpringCloud链路追踪-Spring Cloud Sleuth 和 Zipkin 介绍 & Windows 下使用初步

    Spring Cloud Sleuth 和 Zipkin 是两个非常流行的工具,用于实现微服务架构中的链路追踪。本篇将详细介绍这两个组件以及如何在Windows环境下进行初步使用。 **Spring Cloud Sleuth** Spring Cloud Sleuth 是一个...

    Java Web应用中的服务链路追踪:实现与实践

    通过使用Spring Cloud Sleuth、Zipkin和OpenTelemetry等工具,我们可以在Java Web应用中轻松实现服务链路追踪。这些工具不仅提供了服务注册和发现的功能,还支持负载均衡和配置管理,极大地提高了微服务架构的灵活性...

    zipkin-server-2.10.4-exec

    zipkin-server-2.10.4-exec zipkin实现链路追踪,使用方法请看本人博客

    分布式链路追踪zipkin的jar包

    Zipkin是其中一个流行的分布式链路追踪系统,它提供了一个可扩展的平台来收集、存储和查询服务之间的调用时间线数据,从而能够快速定位性能瓶颈和故障。在这个场景中,我们关注的是Zipkin的Java实现,版本为2.12.9,...

    微服务架构之链路追踪.pdf

    随后,基于Dapper的概念,出现了如Zipkin、Sleuth等广泛使用的链路追踪工具,这些工具能够帮助开发者更好地理解和监控微服务架构中的链路。 总结以上内容,微服务架构下的链路追踪技术是分布式系统监控与故障排查的...

    基于Spring Cloud Sleuth和Zipkin的微服务追踪方案实现

    通过整合Spring Cloud Sleuth和Zipkin,可以在provider和consumer中添加相应的Jar包,并进行必要的配置,从而实现对微服务调用链路的全程追踪。同时,还提供了如何将Zipkin的跟踪数据持久化到MySQL数据库的方法,...

    Go微服务框架go-kratos学习05:分布式链路追踪 OpenTelemetry 使用.doc

    随着微服务架构的流行,分布式链路追踪也蓬勃发展起来,出现了许多有名的产品,如 Jaeger、Pinpoint、Zipkin、Skywalking 等等。 二、OpenTracing 和 OpenCensus 在分布式链路追踪领域,出现了两个重要的标准:...

    毕业设计基于SpringCloud微服务分布式链路追踪项目源码.zip

    使用zipkin+sleuth实现 这个是比较成熟的分布式链路追踪实现方案 拦截器自定义实现 基于Google Dapper 论文,进行自定义实现。 原理: traceId :记录整个服务链路的 ID,由首次请求方创建(这里使用zst-service-...

    详解spring cloud分布式整合zipkin的链路跟踪

    在客户端和服务器端都配置好 Zipkin 之后,就可以实现链路跟踪。链路跟踪可以根据时间来查找,也可以根据控制台或日志中的链路编码来查找。 知识点7:链路分析 Zipkin 提供了链路分析功能,可以根据时间和链路编码...

    SpringCloudSleuth+zipkin实现服务追踪

    - Zipkin 是一个流行的分布式的追踪系统,它可以收集 Sleuth 添加到日志中的追踪数据,并提供一个 Web UI 来展示这些数据,便于分析服务间的调用链路。 - 使用 Zipkin,可以图形化展示服务调用的拓扑结构,以及每...

Global site tag (gtag.js) - Google Analytics