You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Java17后Micrometer Propagator.Getter Bean缺失问题求助

解决Micrometer Propagator.Getter Bean缺失问题

问题原因

Spring容器中未注册io.micrometer.tracing.Propagator$Getter<ConsumerRecord<?,?>>类型的Bean,导致UtilSpanner构造器注入失败。

解决方案

手动创建并注册该类型的Bean,实现从Kafka ConsumerRecord的headers中提取链路追踪头信息的逻辑:

步骤1:创建配置类注册Bean

新增一个配置类,定义Propagator.Getter<ConsumerRecord<?, ?>>的Bean:

import io.micrometer.tracing.Propagator;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.common.header.Header;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TracingConfig {

    @Bean
    public Propagator.Getter<ConsumerRecord<?, ?>> kafkaConsumerRecordGetter() {
        return (carrier, key) -> {
            Header header = carrier.headers().lastHeader(key);
            return header != null ? new String(header.value()) : null;
        };
    }
}

步骤2:修正代码拼写错误

你的代码中存在两处拼写错误,需修正以避免编译问题:

  • SPanAndScope → SpanAndScope
  • RecieverRecord → ReceiverRecord

步骤3:验证依赖配置

确保Gradle依赖中包含Spring Kafka相关依赖(如果尚未添加):

implementation 'org.springframework.kafka:spring-kafka'

说明

该Bean实现了从Kafka消息头中提取指定键值的逻辑,适配Micrometer Tracing的链路追踪头提取需求。配合你已引入的micrometer-tracing-bridge-brave,Brave的Propagator实现会被自动注册到容器中,无需额外配置。

内容的提问来源于stack exchange,提问作者Jeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:35:16