ribbon 初体验
2020-02-09 本文已影响0人
木山手札
配置
- 引入相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
-
@LoadBalanced
声明RestTemplate使用负载均衡
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
- 常见配置
ribbon:
eager-load: # 饿汉加载
enabled: true
ReadTimeout: 2000 # 默认5s
ConnectTimeout: 2000 # 默认2s
MaxAutoRetries: 1 # 重试次数
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡策略
- ribbon在客户端负载均衡时默认是懒汉加载机制,实际请求时才会创建
- ribbon的配置可以针对特定的服务进行配置,没有指定特定服务,将全局生效
负载均衡策略
RandomRule
随机策略
RoundRobinRule
轮训策略,按顺序选择server
RetryRule
重试策略,在一个时间段内选择server不成功,则尝试选择一个可用server
BestAvailableRule
最低并发策略,从断路器关闭的server中选择并发连接数最低的,
AvailabilityFilteringRule
可用过滤策略
ResponseTimeWeightedRule
响应时间策略,根据server响应时间分配权中,响应时间长权重低,被选择的概率就低
ZooeAvoidanceRule
区域权衡策略,根据Zone选择(AWS Zone)
配置类
CommonClientConfigKey