1

Web アプリケーションで spring-cloud-sleuth を使用しています。残念ながら、私が電話を受けたサードパーティは、X-B3-TraceId ヘッダーで UUID を送信しています。しかし、Spring の TraceFilter は、文字列から 16 進数に変換するときに UUID の「-」文字が原因でエラーを検出する可能性があります。そのため、TraceFilter の前にリクエストをインターセプトし、ヘッダーからトレース ID を削除する独自のフィルターを作成することにしました。これは私の構成です:

    @Bean
    public FilterRegistrationBean getZipkinFilterRegistrationBean() {

        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new ZipkinHeaderReplaceFilter());
        bean.setOrder(1);
        bean.addUrlPatterns("/");
        return bean;
    }

そして、これは spring-cloud-sleuth の TraceFilter です。

@Order(TraceFilter.ORDER)
public class TraceFilter extends GenericFilterBean {

    protected static final int ORDER = Ordered.HIGHEST_PRECEDENCE + 5;
    .........
}

したがって、トレースフィルターの順序は正確-2147483643であり、これによりフィルターの前に表示されると思います。フィルターの順序を変更したくありません。スプリングブートの自動設定で自動登録されるのでTraceFiltertoの順番を変えるにはどうすればいいですか?2TraceFilter

4

1 に答える 1