我们将 spring boot open feign 与我们的 java 8 spring boot 2.0.3 应用程序结合使用。Open feign 用于对其他服务进行 REST 调用。我们正尝试让 New Relic java 代理将 feign 调用“视为”跟踪的一部分,但它根本没有对它们进行检测。
- open feign 是一个 Web 客户端吗,或者它是一个使用 Web 客户端的库?
- 我们如何知道它使用什么网络客户端?
- 我们应该怎样改变它?
我们被告知 New Relic 仅支持以下 http 客户端,我们只能猜测 Feign 没有使用其中之一:
Akka HTTP 2.4.5 to latest
Akka Http Core from 0.4 to latest
AsyncHttpClient 2.0.0-RC1 to latest
HttpAsyncClient 4.1 to latest
Apache Httpclient from 3.1 to 5.x
java.net.HttpURLConnection
OkHttp 3.6.0 to latest
Ning AsyncHttpClient 1.x
Spring webclient from 5.0.0.release to latest
STTP v2
以下是我们包含 feign 的方式:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
Feign 是一个 REST 客户端,它使用 httpClient。
查看你的 application.yaml
搜索类似内容:feign.*client.enable=true
定义客户端的第二种方法是使用注释:
但很可能你没有定义它。那么它是默认的:
java.net.HttpURLConnection