服务接口调用OpenFeign_超时机制

服务接口调用OpenFeign_超时机制_第1张图片

超时机制

服务接口调用OpenFeign_超时机制_第2张图片

问题:

  • 服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一直等待下去。
  • 在某个峰值时刻,大呈的请求都在同时请求服务消费者,会造成线程的大呈堆积,势必会造成雪崩。
  • 利用超时机制来解决这个问题,设置一个超时时间,在这个时间段内,无法完成服务访问,则自动断开连接。

配置超时时间

# 默认超时时间
feign:
  client:
    config:
      default:
        # 连接超时时间
        connectTimeout: 2000
        # 读取超时时间
        readTimeout: 2000

服务提供方8001故意写超时程序

  /**   * 测试超时机制   * @return   */  @GetMapping("timeout")  public String paymentFeignTimeOut(){    try {      TimeUnit.SECONDS.sleep(5);     } catch (InterruptedException e) {      e.printStackTrace();     }    return "payment success";   }

服务消费方80添加超时方法PaymentFeignService

@FeignClient("CLOUD-PAYMENT-PROVIDER")
public interface PaymentFeignService {
  @GetMapping("/payment/index")  
   String index();
  @GetMapping("/payment/timeout")
  String timeout();}

服务消费方80添加超时方法OrderController

  /**   * 测试超时机制   * @return   */  
  @GetMapping("timeout")
  public String timeout(){
    return paymentFeignService.timeout();
   }

你可能感兴趣的:(java,开发语言)