

问题:
- 服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一直等待下去。
- 在某个峰值时刻,大呈的请求都在同时请求服务消费者,会造成线程的大呈堆积,势必会造成雪崩。
- 利用超时机制来解决这个问题,设置一个超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。
- # 默认超时时间
- feign:
- client:
- config:
- default:
- # 连接超时时间
- connectTimeout: 2000
- # 读取超时时间
- readTimeout: 2000
/** * 测试超时机制 * @return */ @GetMapping("timeout") public String paymentFeignTimeOut(){ try { TimeUnit.SECONDS.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); } return "payment success"; }
- @FeignClient("CLOUD-PAYMENT-PROVIDER")
- public interface PaymentFeignService {
- @GetMapping("/payment/index")
- String index();
- @GetMapping("/payment/timeout")
- String timeout();}
- /** * 测试超时机制 * @return */
- @GetMapping("timeout")
- public String timeout(){
- return paymentFeignService.timeout();
- }