使用 OpenFeign 组件的应用在 ARMS 中数据不完整怎么办?
若您的 OpenFeign 应用接入 ARMS 应用监控后,出现数据不完整、看不到下游应用的数据等情况,可能是由于 OpenFeign 组件默认开启了使用 RxJava 异步框架的Hystrix,而 ARMS 不支持异步框架导致的。
说明 本文仅限于 ARMS 应用监控 Java 探针版本低于 2.6.0 的场景,2.6.0 及以上版本已支持异步框架。 您可以通过关闭 Hystrix 并配置 OkHttp 请求类来解决此类问题。 在 pom.xml 文件中添加以下依赖。
io.github.openfeign feign-okhttp 在 SpringCloud 配置文件中添加以下配置。feign.okhttp.enabled: true feign.hystrix.enabled: false
配置 OkHttp 请求类。
@Configuration @ConditionalOnClass(Feign.class) @AutoConfigureBefore(FeignAutoConfiguration.class) public class FeignClientOkHttpConfiguration {
@Bean
public OkHttpClient okHttpClient() {
return new OkHttpClient.Builder()
// 连接超时
.connectTimeout(20, TimeUnit.SECONDS)
// 响应超时
.readTimeout(20, TimeUnit.SECONDS)
// 写超时
.writeTimeout(20, TimeUnit.SECONDS)
// 是否自动重连
.retryOnConnectionFailure(true)
// 连接池
.connectionPool(new ConnectionPool())
.build();
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。