springcloud中的超时设置

  1. 结构概览
超时配置.png

2.详情

 在分布式服务中,往往会存在这种一个父项目调用多个子节点的情况,而子节点又去调用别家 
 公司的接口。  
 这里就会存在三个设置超时时间的地方。
 (1)、父core调用子节点feign超时设置:(这里当父core调用一个节点超过80s就会报超时)

        feign.client.config.default.connect-timeout=80000
        feign.client.config.default.read-timeout=80000
        ribbon.ReadTimeout=80000
        ribbon.ConnectTimeout=80000

 (2)、子节点通过resttemplate访问服务接口超时设置:(这里采用的是在启动类中@Bean)

       //注入restTemplate
       @Bean
       public RestTemplate restTemplate(){
         SimpleClientHttpRequestFactory requestFactory = new 
                 SimpleClientHttpRequestFactory();
         requestFactory.setConnectTimeout(600000);
         requestFactory.setReadTimeout(600000);
         RestTemplate restTemplate=new RestTemplate(requestFactory);
         return  restTemplate;
       }

  (3)、服务接口设置的超时时间:
  
         需要提前沟通,比如别人服务设置的超时时间是2s,我们resttemplate设置的1s就报超时肯定是会出现问题的。

  总的来说,就是我的父项目要等待所有子节点的最大等待超时时间结束后超时。

你可能感兴趣的:(springcloud中的超时设置)