前言
最近在使用springboot3搭建cloud微服务在链式追踪做了下选型 ,因服务者有多种语言,skywalking的php探针很难使用,所以打算使用zipkin埋点来做链路追踪!不过尴尬的是boot3剔除了sleuth的支持!所以无法使用spring-cloud-starter-sleuth依赖了,直接无效。百度、csdn并没有一个哥们提供一下迁移示例,没办法只能自己看官方文档来做迁移文章了,希望能帮助各位老铁了,点个关注不迷路!顶起来!
迁移官方文档:Spring Cloud Sleuth Features
废话不多说直接上代码!
问题版本,3.0以下可以正常使用sleuth+zipkin,不用看本文,本文只解决3.0及以上版本。
所需依赖
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.reporter2</groupId>
<artifactId>zipkin-reporter-brave</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
注意!spring-boot-starter-actuator这个很重要!官方文档有阐述说明!
package com.example.demo.controller.zipkinconfig;
import brave.baggage.BaggageFields;
import brave.baggage.CorrelationScopeConfig;
import brave.context.slf4j.MDCScopeDecorator;
import brave.propagation.CurrentTraceContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ZipkinConfig{
@Bean
CurrentTraceContext.ScopeDecorator legacyIds() {
return MDCScopeDecorator.newBuilder()
.clear()
.add(CorrelationScopeConfig.SingleCorrelationField.newBuilder(BaggageFields.TRACE_ID)
.name("X-B3-TraceId").build())
.add(CorrelationScopeConfig.SingleCorrelationField.newBuilder(BaggageFields.PARENT_ID)
.name("X-B3-ParentSpanId").build())
.add(CorrelationScopeConfig.SingleCorrelationField.newBuilder(BaggageFields.SPAN_ID)
.name("X-B3-SpanId").build())
.add(CorrelationScopeConfig.SingleCorrelationField.newBuilder(BaggageFields.SAMPLED)
.name("X-Span-Export").build())
.build();
}
}
server:
port: 9457
spring:
application:
name: java-consumer
management:
zipkin:
tracing:
endpoint: http://127.0.0.1:9411/api/v2/spans
tracing:
sampling:
probability: 1.0 # 记录速率100%
诶,研究了一天,还是自己能力不行啊!