首页 > 其他分享 >Zipkin使用实践

Zipkin使用实践

时间:2023-05-30 19:33:50浏览次数:58  
标签:示例 spring zipkin 实践 springframework Zipkin 使用 import

Zipkin是一个开源的分布式追踪系统,用于收集、存储和查询跨多个服务的分布式请求链路信息。它可以帮助开发人员定位和解决分布式系统中的性能问题和故障。下面是Zipkin的介绍以及使用Java代码实现的入门示例:

Zipkin的介绍:
Zipkin是一个分布式追踪系统,它通过跟踪和记录请求在分布式系统中的传递路径和时间,提供了全链路的可视化和分析能力。Zipkin使用了开放标准的Zipkin数据模型和Zipkin API,可以与各种编程语言和框架集成,包括Java、Spring Cloud等。它提供了直观的UI界面,可以查看请求的调用链路和各个组件的性能指标,帮助开发人员快速定位和解决性能问题。

下面是使用Java代码实现Zipkin的入门示例:

  1. 添加依赖:
    在项目的构建文件(例如Maven的pom.xml)中添加Zipkin相关的依赖:
<dependency>
    <groupId>io.zipkin.zipkin2</groupId>
    <artifactId>zipkin</artifactId>
    <version>2.23.1</version>
</dependency>
<dependency>
    <groupId>io.zipkin.reporter2</groupId>
    <artifactId>zipkin-reporter-metrics-micrometer</artifactId>
    <version>2.23.1</version>
</dependency>
<dependency>
    <groupId>io.zipkin.reporter2</groupId>
    <artifactId>zipkin-sender-kafka11</artifactId>
    <version>2.23.1</version>
</dependency>
  1. 配置Zipkin:
    在Spring Boot应用程序的配置文件中添加以下配置:
spring.zipkin.enabled=true
spring.zipkin.base-url=http://localhost:9411
spring.zipkin.service.name=my-service
spring.zipkin.sender.type=KAFKA
spring.zipkin.kafka.bootstrap-servers=localhost:9092
  1. 添加代码:
    在需要进行追踪的服务中,添加以下代码进行配置:
import brave.Tracing;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.cloud.sleuth.zipkin2.ZipkinProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import zipkin2.reporter.Sender;
import zipkin2.reporter.kafka11.KafkaSender;

@Configuration
public class ZipkinConfig {

    @Autowired
    private ZipkinProperties zipkinProperties;

    @Bean
    public Sender kafkaSender() {
        return KafkaSender.newBuilder()
                .bootstrapServers(zipkinProperties.getKafka().getBootstrapServers())
                .build();
    }

    @Bean
    public Tracing tracing(Sender kafkaSender) {
        return Tracing.newBuilder()
                .localServiceName(zipkinProperties.getService().getName())
                .spanReporter(kafkaSender)
                .build();
    }

    @Bean
    public FilterRegistrationBean tracingFilter(Tracing tracing) {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new brave.servlet.Tr

acingFilter(tracing));
        registrationBean.addUrlPatterns("/*");
        return registrationBean;
    }

}
  1. 启动Zipkin服务器:
    下载并启动Zipkin服务器,可以从Zipkin的官方网站(https://zipkin.io/)下载最新版本的Zipkin服务器,并按照官方文档中的说明进行启动。

  2. 运行应用程序:
    运行您的Spring Boot应用程序,并执行一些请求,触发请求的追踪。Zipkin服务器将收集和展示请求的追踪信息。您可以访问Zipkin服务器的UI界面,查看请求的调用链路和性能指标。

以上是使用Java代码实现Zipkin的入门示例。您可以根据自己的需求进行配置和扩展,以满足分布式追踪的要求。请注意,示例中的代码仅供参考,您可以根据实际情况进行修改和调整。如需更多信息和示例代码,建议您查阅Zipkin的官方文档和示例项目。

标签:示例,spring,zipkin,实践,springframework,Zipkin,使用,import
From: https://www.cnblogs.com/lukairui/p/17444200.html

相关文章

  • Elastic-Job使用实践
    Elastic-Job是一个分布式任务调度框架,它基于Quartz和Zookeeper实现,提供了简单易用的任务调度和分布式任务处理能力。Elastic-Job支持任务的动态添加、删除、暂停和恢复,同时还具备故障转移和弹性扩容的能力。下面是Elastic-Job的介绍以及使用Java代码实现的入门示例:Elastic-Job的......
  • Quartz使用实践
    Quartz是一个开源的作业调度框架,它允许开发人员根据特定的时间规则来执行任务。Quartz提供了灵活的配置选项和丰富的功能,可以用于定时执行任务、定期重复任务、分布式任务调度等。下面是Quartz的介绍以及使用Java代码实现的入门示例:Quartz的介绍:Quartz是一个功能强大的作业调度......
  • IDEA工具的使用
    理解IDEA工具的  箭头所指的是模块,下图也是在新建的项目中增加Module模块 ......
  • 在树莓派上实现numpy的conv2d卷积神经网络做图像分类,加载pytorch的模型参数,推理mnist
    这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是卷积识别mnist手写数字识别训练代码在电脑上,cpu就能训练,很快的:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimportdatasets,transformsimportn......
  • ElasticSearch使用实例
    当涉及到Elasticsearch的入门实例时,以下是一个详细的示例,展示了如何使用Java高级REST客户端与Elasticsearch进行交互。准备工作:安装Elasticsearch:请按照Elasticsearch官方文档中的说明安装并启动Elasticsearch。添加依赖项:在您的项目的构建文件(例如pom.xml)中,添加Elasticsearc......
  • 关于在 computed 使用 ref 获取 dom 结点为 undefined的问题
    原因:因为ref本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们,它们还不存在computed里面无法获取到ref解决方法:方法一:data:{isMount:false,},mounted(){this.isMount=true},computed:{if(this.isMount){console.l......
  • docker学习笔记:docker常见网络类型及使用
    docker网络类型四类网络模式Docker网络模式配置说明host模式–net=host容器和宿主机共享Networknamespace。container模式–net=container:NAME_or_ID容器和另外一个容器共享Networknamespace。kubernetes中的pod就是多个容器共享一个Networknamespace。......
  • ShardingSphere使用实例
    ShardingSphere是一个开源的分布式数据库中间件,提供了数据库分片、读写分离、分布式事务等功能。下面是一个简单的示例,展示了如何在Java应用程序中使用ShardingSphere:添加依赖项:在您的项目的构建文件(例如pom.xml)中,添加ShardingSphere的依赖项。例如,在Maven项目中,您可以添加以下......
  • Shading-JDBC使用实例
    Sharding-JDBC是一个开源的数据库中间件,用于实现数据库分片和读写分离。它通过在应用程序和底层数据库之间添加一个透明的中间层来实现数据分片和路由。下面是一个简单的示例,展示了如何在Java应用程序中使用Sharding-JDBC:添加依赖项:在您的项目的构建文件(例如pom.xml)中,添加Shard......
  • Kali内置代理工具Proxychains的简单使用
    1.介绍Kali中内置了ProxyChains开源代理工具,通过使用这个工具,可以让我们隐藏真实ip实现攻击、代理上网等使用ProxyChains,用户可以在KaliLinux中配置不同类型的代理服务器,包括HTTP、SOCKS4和SOCKS5代理。此外,用户还可以为不同的目标指定不同的代理服务器,以确保他们的行为不被检......