springboot3因sleuth移除使用zipkin解决方案

前言

最近在使用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%

 

 诶,研究了一天,还是自己能力不行啊!

猜你喜欢

转载自blog.csdn.net/weixin_47723549/article/details/128939796