我终于弄明白了。
答案几乎在这里:https://github.com/spring-cloud/spring-cloud-
sleuth/issues/594
使用Feign.Builder时,其客户端需要由“跟踪”实现包装。
为此,我们只需声明一个Client bean,然后spring / sleuth将自动处理它的包装(因为sleuth在依赖列表中)。
该声明将类似于:
@Beanpublic OkHttpClient okHttpClient() { return new OkHttpClient();}然后,我们可以在构建客户端实现时将Client Bean传递给构建器。
例如:
// autowiring the Client bean@Autowiredprivate Client client;// using the Client bean to build the Feign clientDemoClient demoClient = Feign.builder() .client(client) .target(DemoClient.class, "http://localhost:8200/demo");
完成之后,一切似乎都正常了。我可以看到跟踪ID正在传播到远程REST服务。



