有时候需要自定义Ribbon的配置和客户端超时配置。
/* 使用属性自定义功能区客户端 从版本1.2.0开始,Spring Cloud Netflix现在支持使用属性与Ribbon文档兼容来自定义功能区客户端。即从Camden版本之后,新增了org.springframework.cloud.netflix.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类型定义,可以查看com.netflix.client.config.CommonClientConfigKey类获取更为详细的配置内容
没有服务治理框架的帮助,需要为该客户端指定具体的实例清单,指定具体的服务名来做详细的配置
<service-name>.ribbon.listOfServers=localhost:8001,localhost:8002,localhost:8003
1:变化
2:禁用Eureka对Ribbon服务实例的维护实现
ribbon.eureka.enabled=false从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 #切换实例的重试次数 MaxAutoRetries: 1 #对当前实例的重试次数POM添加·
<!--spring retry(let ribbon retry) need add spring boot aop starter--> <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency> <!--spring boot starter aop--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>启动类加上@EnableRetry注解。
转载于:https://www.cnblogs.com/liuenyuan1996/p/10288570.html
相关资源:DirectX修复工具V4.0增强版