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
であり、これによりフィルターの前に表示されると思います。フィルターの順序を変更したくありません。スプリングブートの自動設定で自動登録されるのでTraceFilter
toの順番を変えるにはどうすればいいですか?2
TraceFilter