Skip to content

如何自定义Header全链路传递

Neptune edited this page Nov 16, 2022 · 5 revisions

全链路服务通过配置来定义

# 一般用于定义上下文Header全链路传递。如果多个用“;”分隔,不允许出现空格
spring.application.strategy.context.request.headers=trace-id;span-id
# 一般用于定义业务Header全链路传递。如果多个用“;”分隔,不允许出现空格
spring.application.strategy.business.request.headers=token

全链路服务通过前缀来定义

所有前缀为n-d-的Header,框架都会自动全链路传递

需要避开框架内置n-d-的Header,例如,n-d-version

全链路服务通过注入来定义

自定义注入Header,实现StrategyHeadersInjector,允许同时注入多个,每个类里允许多个Header

public class MyStrategyHeadersInjector implements StrategyHeadersInjector {
    @Override
    public List<HeadersInjectorEntity> getHeadersInjectorEntityList() {
        return Arrays.asList(new HeadersInjectorEntity(HeadersInjectorType.TRANSMISSION, Arrays.asList("test1"));
    }
}

在配置类里@Bean方式进行Header注入类创建

@Bean
public StrategyHeadersInjector strategyHeadersInjector() {
    return new MyStrategyHeadersInjector();
}




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally