自动化配置
引入spring cloud ribbon后会自动化构建一下配置
- IClientConfig:Ribbon客户端配置,默认采用com.netlix.client.config.DefaultClientConfigImpl实现
- IRule:Ribboin的负载均衡策略实现,默认采用com.netflix.loadbalancer.ZoneAvoidanceRule实现,该策略能在多Zone下选择最佳的Zone进行访问
- IPing:Ribbon的实例检查策略,默认采用com.netflix.loadbalancer.NoOpPing,默认所有的服务都是可用的
- ServerList<Server>:服务实例列表的维护机制,默认采用com.netflix.loadbalancer.ConfigurationBasedServerList
- ServerListFilter:服务实例列表过滤器,默认采用org.springframework.cloud.netflix.ribbon.ZonePreferenceServerListFilter
- ILoadBalancer:默认采用com.netflix.loadbalancer.ZoneAwareLoadBalancer<T>
当然,这是再没有引入spring cloud eureka时的默认实现。
参数配置
有两种方式,全局配置和制定客户端配置
- ribbon.<key>=<value> 即全局配置
- <client>.ribbon.<key>=<value> 客户端配置
重试机制
增加配置
spring.cloud.loadbalancer.retry.enabeld=true 开启充实机制
hystrix.cpmmand.default.execution.isolation.thread.timeoutinMilliseconds 断路器的超市世间,需要 大于 Ribbon的超时时间,不然还未触发重试机制,该请求就被中段了
ribbon.ConnectionTimeout:请求连接超时世间
ribbon.ReadTimeout:请求处理的超时时间
ribbon.OkToRetryOnAllOperations:对所有请求都进行重试操作
ribbon.MaxAutoRetriesNextServer:切换实例的重试次数
ribbon.MaxAutoRetries:重试次数