SpringCloud--组件超时配置

最近在使用spring cloud 搭建一个微服务项目,因为需要调用第三方接口,且延迟可能较高,

特意写了个测试接口测试30秒左右延迟能否正常处理,请求中途会在zuul的gate-service 中断于15秒左右,

并抛出如下异常

com.netflix.zuul.exception.ZuulException: Forwarding error
    ...
    ...
    ...

Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: api-service timed-out and no fallback available.
    ...
    ...
    ...

修改了多次配置都未生效,于是就仔细研究了一下cloud中的各种组件的超时配置并整理如下

 

 


RestTemplate的超时

@Bean
@LoadBalanced
//不管是否有@LoadBalanced注解,都可以使用如下方式设置超时
public	RestTemplate restTemplate(){
   
	SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
	simpleClientHttpRequestFactory.setConnectTimeout(1000);
	simpleClientHttpRequestFactory.setReadTimeout(1000);
	return new RestTemplate(simpleClientHttpRequestFactory);
}

Ribbon的超时

#全局设置

ribbon:
ReadTimeout: 40000 #单位ms
ConnectTimeout: 40000 #单位ms

#局部设置

#Ribbon所使用的虚拟主机名,

#一般和Eureka Server上注册的服务名称一致,

#即与spring.application.name一致

<service-id>:
ribbon

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值