由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参数。
全局配置
全局配置的方法非常简单,我们可以i直接使用 ribbon.<key>=<value>的方式来设置 ribbon 的各项默认参数,比如,修改默认的客户端调用超时时间示例如下,使用 yml 格式配置:
ribbon:
ConnectionTimeout: 500
ReadTimeout: 500
指定服务的配置
大多数情况下,我们对于服务调用的超时时间等可能会根据实际服务的特性做一些调整,所以仅仅依靠默认配置是不行的,在使用 Spring Cloud Feign 的时候,针对各个服务客户端进行个性化的配置方式与使用 Spring Cloud Ribbon 时的配置方式是一样的,都采用 <client>.ribbon.<key>=<value> 的格式设置,<client> 为使用 @FeignClient 注解的 name 属性或者 value属性指定的服务名,需要区分大小写,示例如下:
ORG.LIXUE.HELLOWORLD:
ribbon:
ConnectionTimeout: 50
ReadTimeout: 50
常用Ribbon配置
配置名称 |
默认值 |
说明 |
ConnectionTimeout |
|
连接超时时间 |
ReadTimeout |
|
读取超时时间 |
OkToRetryOnAllOperatotions |
|
对所有操作请求都进行重试 |
MaxAutoRetriesNextServer |
|
切换服务器实例的重试次数, |
MaxAutoRetries |
|
对当前实例的重试次数 |
ServerListRefreshInterval |
|
刷新服务列表源的间隔时间 |