SpringCloudRibbon配置详解
概述
有时候需要⾃定义Ribbon的配置和客户端超时配置。
⾃动化配置
/* 使⽤属性⾃定义功能区客户端从版本1.2.0开始,Spring Cloud Netflix现在⽀持使⽤属性与Ribbon⽂档兼容来⾃定义功能区客户端。即从Camden版本之后,新增了org.springframework.cloudflix.ribbon.PropertiesFactory类动态的为RibbonClient创建这些接⼝的实现
public PropertiesFactory() {
classToProperty.put(ILoadBalancer.class, "NFLoadBalancerClassName");
classToProperty.put(IPing.class, "NFLoadBalancerPingClassName");
classToProperty.put(IRule.class, "NFLoadBalancerRuleClassName");
classToProperty.put(ServerList.class, "NIWSServerListClassName");
classToProperty.put(ServerListFilter.class, "NIWSServerListFilterClassName");
}
#服务名
<client-name>:
ribbon:
#配置Ribbon负载均衡规则:IRule
NFLoadBalancerRuleClassName: com.ley.springcloud.client.rule.MyRoundRobinRule
#配置Ribbon实例检查策略:IPing
NFLoadBalancerPingClassName:
#配置负载均衡器:ILoadBalancer
NFLoadBalancerClassName:
#配置服务实例清单维护机制:ServerList
NIWSServerListClassName:
#配置服务清单过滤机制:ServerListFilter
NIWSServerListFilterClassName:
参数配置
对于Ribbon参数配置通常有两种⽅式:全局配置以及客户端配置
全局配置:ribbon.<key>=<value>
指定客户端配置:<client>.ribbon.<key>=<value>格式进⾏配置,client可以理解为服务名
**对于Ribbon参数的key以及value类型定义,可以查看fig.CommonClientConfigKey类获取更为详细的配置内容
没有服务治理框架的帮助,需要为该客户端指定具体的实例清单,指定具体的服务名来做详细的配置
<service-name>.ribbon.listOfServers=localhost:8001,localhost:8002,localhost:8003
与Eureka结合
1:变化
2:禁⽤Eureka对Ribbon服务实例的维护实现
abled=false
Ribbon重试机制
从Camden SR2版本开始,Spring Cloud整合Spring Retry来增强RestTemplate的重试能⼒。通过RestTemplate实现的服务访问就会⾃动根据配置来实现重试机制
配置⽰例
spring:
cloud:
loadbalancer:
retry:
enabled: true #开启重试机制
#ribbon配置,key-value配置类:CommonClientConfigKey
#need add spring retry
#服务名
eureka-provider:
ribbon:
ConnectTimeout: 250 #单位ms,请求连接超时时间
ReadTimeout: 1000 #单位ms,请求处理的超时时间
OkToRetryOnAllOperations: true #对所有操作请求都进⾏重试
MaxAutoRetriesNextServer: 2 #切换实例的重试次数springboot aop
MaxAutoRetries: 1 #对当前实例的重试次数
POM添加·
<!--spring retry(let ribbon retry) need add spring boot aop starter--> <dependency>
<groupId></groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<!--spring boot starter aop-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
启动类加上@EnableRetry注解。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论