设置断点出现超时如何处理,运行过程中怎么设置断点

首页 > 车主 > 作者:YD1662023-10-25 17:19:07

今天来聊一聊前段时间看到的一个面试题,也是在实际项目中需要考虑的一个问题,Feign的超时时间如何设置?

Feign的超时时间设置方式并不固定,它取决于Feign在项目中是如何使用的,不同的使用方式,超时时间设置方式也不大相同,甚至还可能有坑。

前置知识

由于文章会涉及到Feign的底层知识,如果不懂点Feign的基本概念的话,后面就看不下去了

所以为了方便不了解Feign的小伙伴也能够读得懂文章,这里我就简单地说说Feign的原理,点到为止,虽然不深入,但足够应付这篇文章了

Feign的作用

在项目中,我们经常需要调用第三方提供的Http接口,此时我们就可以使用一些Http框架来实现,比如HttpClient

public class HttpClientDemo { public static void main(String[] args) throws Exception { //创建一个HttpClient HttpClient httpClient = HttpClientBuilder.create().build(); //构建一个get请求 HttpGet httpGet = new HttpGet("http://192.168.100.1:8080/order/1"); //发送请求,获取响应 HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); //读出响应值 String response = EntityUtils.toString(httpEntity); System.out.println("Response: " response); } }

如果项目中只有一两个这种第三方接口这样写还行,但是一旦这种三方接口过多的话,每次都得这样组装参数,发送请求,写一堆同样的代码,就显然很麻烦了。

所以为了简化发送Http请求的开发,减少重复代码,Feign就出现了。

Feign是一个声明式的Http框架

当你需要调用Http接口时,你需要声明一个接口,加一些注解就可以了

而像组装参数、发送Http请求等重复性的工作都交给Feign来完成。

Feign的原理

虽然有了接口,但是仅仅有接口是不够的,因为接口又不能创建对象,我们得需要对象。

Feign为了方便我们为接口创建对象,提供的Feign.Builder这个内部类

设置断点出现超时如何处理,运行过程中怎么设置断点(1)

这个类的作用就是解析接口的上的注解,为接口生成一个动态代理对象,后面通过这个代理对象就可以发送请求了。

这个内部类有很多属性,这些属性都是Feign的核心组件。

在这些核心的组件中有一个叫Client的,上图中我圈出来了。

设置断点出现超时如何处理,运行过程中怎么设置断点(2)

这个Client类划个重点,非常非常重要,本文讨论的东西跟他有密切关系。

它只有一个方法Response execute(Request request, Options options)

方法的第一个参数Request就是封装了http请求的url、请求方法,请求头、请求体之类的参数

设置断点出现超时如何处理,运行过程中怎么设置断点(3)

第二个参数Options就是本文的主题,封装了超时时间。

设置断点出现超时如何处理,运行过程中怎么设置断点(4)

首页 12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.