feign超时控制

本文介绍了如何处理Feign客户端调用服务时出现的超时问题。首先展示了一个模拟服务超时的方法,然后在Feign客户端定义相应接口。在消费者端的Controller中,直接调用该服务会遇到默认1秒超时的问题。为解决这个问题,文章详细说明了在消费者配置文件中设置`server`、`spring`、`eureka`以及`feign.client.config.default`的相关超时属性,如`readTimeout`和`connectTimeout`,以确保足够的时间等待服务响应,从而避免调用超时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)在8001服务提供方的controller里面定义一个方法
这个方法就是故意模拟一个调用时间超时的方法
//故意模拟服务超时
@GetMapping("/payment/feign/timeout")
public String paymentFeignTimeOut(){
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
return “time out…”;
}
(2)在feign客户端PaymentFeignService里面定义
@GetMapping("/payment/feign/timeout")
public String paymentFeignTimeOut();
(3)在controller类CustomerFeignController里面定义
@GetMapping(“consumer/feign/timeout”)
public String timeout(){
//openfeign调用服务,默认等待时间是1秒钟
return paymentFeignService.paymentFeignTimeOut();
}
(4)测试
首先我们直接访问8001服务中的paymentFeignTimeOut方法

然后我们通过feign客户端类访问
在这里插入图片描述
为了避免

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值