问题:
服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一 直等待下去。 在某个峰值时刻,大呈的请求都在同时请求服务消费者,会造成线程的大呈堆 积,势必会造 成雪崩。 利用超时机制来解决这个问题,设置一个超时时间,在这个时间段 内,无法完成服务访问, 则自动断开连接。
配置超时时间:
yml文件
# 默认超时时间
feign:
client:
config:
default:
connectTimeout: 2000 # 连接超时时间
readTimeout: 2000 # 读取超时时间
服务提供方8001故意写超时程序:
yml文件中写超时2秒,服务提供方8001故意写成5秒
@GetMapping("/timeUot")
public String timeOut(){
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "超时了";
}
服务消费方80添加超时方法PaymentFeignService:
//超时数据
@GetMapping("/privider/timeUot")
public String timeOut();
服务消费方80添加超时方法OrderController:
//验证超时
@GetMapping("/timeOut")
public String timeOut(){
return openfeginService.timeOut();
}
重启项目后, 访问数据,服务器出现下面状态表示成功