定制app开发OpenFeign超时控制

 定制app开发在上一篇的OpenFeign定制app开发服务调用中,定制app开发虽然可以使用OpenFeign来实现服务之间的调用,但是一旦调用提供服务方的时候超时就会报错;所以这里就需要了解到OpenFeign的超时控制。

在提供服务端暴露一个接口,设置睡眠3秒钟,方便测试

  1. @Value("${server.port}")
  2. private String serverPort;
  3. // 返回端口号
  4. @GetMapping(value = "/feign/timeout")
  5. public String paymenyFeignTimeout()
  6. {
  7. try
  8. {
  9. TimeUnit.SECONDS.sleep(3);
  10. }catch (Exception e){
  11. e.printStackTrace();
  12. }
  13. return serverPort;
  14. }

然后在调用方的接口新增接口 相对应

  1. @Component
  2. @FeignClient(value = "CLOUD-PAYMENT-SERVICE")
  3. public interface PaymentFeignService
  4. {
  5. @GetMapping(value = "/better/payment/feign/timeout")
  6. String paymentFeignTimeout();
  7. }

controller实现

  1. @GetMapping(value = "/consumer/payment/feign/timeout")
  2. public String paymentFeignTimeout()
  3. {
  4. String result = paymentFeignService.paymentFeignTimeout();
  5. return result;
  6. }

分别启动eureka、提供服务端、调用端,网页中输入测试会发现3秒后会报错

因为OpenFeign默认的超时为1秒,我们设置了睡眠时间为3秒,所以会报错。

但是我们可以根据业务的需求,手动设置超时控制的时间。

openFeign中整合了ribbon,它的超时控制是由ribbon 进行控制的

 在yml中添加配置项,设置为5秒大于之前设置的睡眠时间(3秒)

  1. #设置feign 客户端超时时间(openFeign默认支持ribbon)
  2. ribbon:
  3. #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
  4. ReadTimeout: 5000
  5. #指的是建立连接后从服务器读取到可用资源所用的时间
  6. ConnectTimeout: 5000

注意:如果没有生效的话就去看一下引入的包是否冲突了,包名后带(omitted for duplicate)的字样就说明包有冲突,根据自己的情况调整版本。

yml配置好后,重启一下调用端,再进行测试

 

调用成功,通了~ 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发