Ribbon
1.服务调用
eureka内部继承了ribbon
- 在创建RestTemplate的时候,声明@LoadBalanced
- 使用restTemplate调用远程微服务,不需要拼接微服务的URL,以待请求的服务名替换ip地址
2.负载均衡
#修改ribbon的负载均衡策略 服务名 ribbon NFLoadBalancerRuleClassName 策略
SERVICE-PRODUCT:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
3.重试机制
引入spring的重试组件
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
对ribbon进行重试配置
SERVICE-PRODUCT:
ribbon:
# NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
ConnectTimeout: 250 #Ribbon的连接超时时间
ReadTimeout: 1000 #Ribbon的数据读取超时时间
OkToRetryOnAllOperations: true #是否对所有操作都进行重试
MaxAutoRetriesNextServer: 1 #切换实例的重复次数
MaxAutoRetries: 1 #对当前实例的重试次数