SpringBoot集成Zipkin实现分布式全链路监控

  

Zipkin简介

  

Zipkin分布式跟踪系统。它可以帮助收集时间数据在服务架构需要解决延迟问题。功能包括数据的收集和查找。

  

如果你有一个跟踪ID在日志文件中,您可以直接跳转。否则,你可以查询基?   demo-zipkin   zipkin-1   | -SpanCollectorConfig   | -application.properties   | -ZipkinController   | -Application1   zipkin-2   | -SpanCollectorConfig   | -application.properties   | -ZipkinController2   | -Application1   zipkin-3   | -SpanCollectorConfig   | -application.properties   | -ZipkinController3   | -Application1   zipkin-4   | -SpanCollectorConfig   | -application.properties   | -ZipkinController4   | -Application1   zipkin-5   | -SpanCollectorConfig   | -application.properties   | -ZipkinController5   | -Application1      

<>强工程端口分配

  

每个模块使用不同的端口,分别启动自己的应用。

  

                                                  模块名称   端口   应用程序               zipkin-1   8081   Application1         zipkin-2   8082   Application2         zipkin-3   8083   Application3         zipkin-4   8084   Application4         zipkin-5   8085   Application5               

  

引入Maven依赖

  

        & lt; properties>   & lt; zipkin.version> 3.9.0   & lt;/properties>      & lt; !——Springboot相关——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-test   & lt; scope> test   & lt;/dependency>      & lt; !——zipkin相关——比;   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-web   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.zipkin.brave   & lt; artifactId> brave-core   & lt; version> $ {zipkin.version} & lt;/version>   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.zipkin.brave   & lt; artifactId> brave-spancollector-http   & lt; version> $ {zipkin.version} & lt;/version>   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.zipkin.brave   & lt; artifactId> brave-web-servlet-filter   & lt; version> $ {zipkin.version} & lt;/version>   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.zipkin.brave   & lt; artifactId> brave-apache-http-interceptors   & lt; version> $ {zipkin.version} & lt;/version>   & lt;/dependency>   & lt; dependency>   & lt; groupId> io.zipkin.brave   & lt; artifactId> brave-okhttp   & lt; version> $ {zipkin.version} & lt;/version>   & lt;/dependency>      

<>强配置文件,收集器的设置

  

配置应用程序。属性,以<代码> zipkin-1 为例,其他工程中配置时将<代码> zipkin.serviceName 与<代码>服务器。端口> myzipkin-2…与<代码> 8081…等即可

        zipkin.serviceName=myzipkin-1   zipkin.url=http://localhost: 9411   zipkin.connectTimeout=6000   zipkin.readTimeout=6000   zipkin.flushInterval=1   zipkin.compressionEnabled=true   zipkin.samplerRate=1      server.port=8081   server.servlet.context-path=/      

<>强配置跨度收集器

  

设置收集器的详细参数,包含超时时间,上传跨度间隔,以及配置采集率等,进而对收集器进行初始化。

        包com.anqi.zipkin.bean;      进口com.github.kristofa.brave.Brave;   进口com.github.kristofa.brave.Brave.Builder;   进口com.github.kristofa.brave.EmptySpanCollectorMetricsHandler;   进口com.github.kristofa.brave.Sampler;   进口com.github.kristofa.brave.SpanCollector;   进口com.github.kristofa.brave.http.DefaultSpanNameProvider;   进口com.github.kristofa.brave.http.HttpSpanCollector;   进口com.github.kristofa.brave.http.HttpSpanCollector.Config;   进口com.github.kristofa.brave.okhttp.BraveOkHttpRequestResponseInterceptor;   进口com.github.kristofa.brave.servlet.BraveServletFilter;   进口okhttp3.OkHttpClient;   进口org.springframework.beans.factory.annotation.Value;   进口org.springframework.context.annotation.Bean;   进口org.springframework.context.annotation.Configuration;      @ configuration   公开课SpanCollectorConfig {      @ value (" $ {zipkin.url} ")   私人字符串url;      @ value (" $ {zipkin.serviceName} ")   私人字符串名;/*   连接超时时间   */@ value (" $ {zipkin.connectTimeout} ")   私人int connecTimeout;/*   是否启动压缩   */@ value (" $ {zipkin.compressionEnabled} ")   私人布尔compressionEnabled;/*   上传的跨度间隔时间   */@ value (" $ {zipkin.flushInterval} ")   私人int flushInterval;/*   读取超时时间   */@ value (" $ {zipkin.readTimeout} ")   私人int readTimeout;      @ value (" $ {zipkin.samplerRate} ")   私人samplerRate浮动;/* *   *配置跨度收集器   * @return   */@ bean   公共SpanCollector SpanCollector () {   配置配置=Config.builder ()   .connectTimeout (connecTimeout)   .compressionEnabled (compressionEnabled)   .flushInterval (flushInterval)   .readTimeout (readTimeout)   .build ();      HttpSpanCollector返回。新建(url、配置、EmptySpanCollectorMetricsHandler ());   }/* *   *配置采集率   * @param spanCollector   * @return   */@ bean   公共勇敢勇敢(SpanCollector SpanCollector) {   Builder构建器=new Builder(名);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

SpringBoot集成Zipkin实现分布式全链路监控