首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

spring-boot/spring云升级后,Spring Cloud Sleuth停止向MDC推送X-B3-TraceId

spring-boot和spring云升级后,Spring Cloud Sleuth停止向MDC推送X-B3-TraceId。

Spring Cloud Sleuth是一个用于分布式系统中实现请求跟踪和服务跟踪的解决方案。它通过将一个唯一的跟踪标识TraceId注入到请求的header中,从而实现请求的追踪。在旧版的Spring Boot和Spring云中,Spring Cloud Sleuth会将TraceId自动推送到MDC(Mapped Diagnostic Context),以便在日志中方便地进行跟踪和定位问题。

然而,在升级后的Spring Boot和Spring云版本中,Spring Cloud Sleuth不再自动将X-B3-TraceId推送到MDC中。这是因为MDC的使用存在一些线程安全的问题,可能导致潜在的内存泄漏和性能问题。因此,Spring Cloud Sleuth决定不再默认推送TraceId到MDC,以避免潜在的风险。

尽管如此,如果你仍然希望将TraceId推送到MDC中,你可以通过编写自定义的日志配置来实现。以下是一个示例:

代码语言:txt
复制
@Configuration
public class SleuthConfig {

    @Bean
    public TraceLoggingFilter traceLoggingFilter(Tracer tracer) {
        return new TraceLoggingFilter(tracer);
    }

    public static class TraceLoggingFilter extends OncePerRequestFilter {

        private final Tracer tracer;

        public TraceLoggingFilter(Tracer tracer) {
            this.tracer = tracer;
        }

        @Override
        protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
            try (Tracer.SpanInScope ws = tracer.withSpanInScope(tracer.nextSpan())) {
                filterChain.doFilter(request, response);
            }
        }
    }
}

上述示例中,我们通过自定义一个TraceLoggingFilter,并在doFilterInternal方法中将TraceId推送到MDC中。

至于Spring Cloud Sleuth的优势和应用场景,它可以帮助我们在分布式系统中进行请求追踪和服务跟踪,方便我们定位和解决问题。它提供了许多功能,包括生成唯一的TraceId、将TraceId注入到请求header中、通过日志记录将TraceId传播到不同的服务等。通过使用Spring Cloud Sleuth,我们可以更好地了解分布式系统中各个服务之间的调用关系,快速定位问题,并对系统进行优化。

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 云原生产品:腾讯云原生应用中心(https://cloud.tencent.com/product/tke) 腾讯云原生应用中心是一个全托管的 Kubernetes 服务,支持高可用、弹性伸缩、灰度发布等功能,可以帮助开发者更方便地部署和管理云原生应用。
  2. 服务器运维产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm) 腾讯云云服务器是一种基于云的虚拟服务器,提供高性能计算能力和可扩展性,适用于各种应用场景,包括网站托管、应用程序部署、数据库管理等。
  3. 云存储产品:腾讯云对象存储(https://cloud.tencent.com/product/cos) 腾讯云对象存储是一种安全可靠的云存储服务,适用于各种数据存储需求,包括图片、视频、文档等。

请注意,以上只是腾讯云的部分产品示例,根据实际需求,还可以结合其他腾讯云产品来满足具体的云计算和应用需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券