3.3 负载均衡策略
-
{服务名称}.ribbon.NFLoadBalancerRuleClassName=具体策略
service: #服务名 ribbon: NFLoadBalancerRuleClassName : com.netflix.loadbalancer.RandomRule #随机 # NFLoadBalancerRuleClassName : com.netflix.loadbalancer.BestAvailableRule #并发最少 # NFLoadBalancerRuleClassName : com.netflix.loadbalancer.WeightedResponseTimeRule #请求时间权重
3.4 优化:重试机制
-
当一次服务调用失败后,不会立即抛出异常,而是再次重试另一个服务
-
步骤一: 修改pom文件
<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency>
-
步骤二: 修改yml文件,开启重试机制,并配置参数
spring: cloud: loadbalancer: retry: enabled: true #开启重试机制 service: #服务名 ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #随机 #NFLoadBalancerRuleClassName : com.netflix.loadbalancer.BestAvailableRule #并发最少 #NFLoadBalancerRuleClassName : com.netflix.loadbalancer.WeightedResponseTimeRule #请求时间权重 ConnectTimeout: 250 # Ribbon的连接超时时间 ReadTimeout: 1000 # Ribbon的数据读取超时时间 OkToRetryOnAllOperations: true # 是否对所有操作都进行重试 MaxAutoRetriesNextServer: 1 # 切换实例的重试次数 MaxAutoRetries: 1 # 对当前实例的重试次数