1:首先呢,先上流程图
2:如何改变它得负载均衡规则(有两种方式)
(1):在配置类中注入一个新的IRule(举例为随机均衡策略,当然这种为全局进行配置,也就是该服务中得分所有规则都将采用配置得负载均衡规则。)
@Bean
public IRule randomRule(){
return new RandomRule();
}
(2):在yml文件中进行配置(这样得配置可以针对某一个服务改变他得负载均衡策略,以下图中就只针对了userservice服务及逆行配置,也就是说在本服务下,只有user service采取随机负载均衡策略,其他得服务还是轮询负载均衡策略。)
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡规则
3:饥饿加载
Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。 而饥饿加载则会在项目启动时创建,降低第一次访问的耗时,通过下面配置开启饥饿加载:
ribbon:
eager-load:
enabled: true # 开启饥饿加载
clients: # 指定饥饿加载得服务名称。(因为他是java.util.List<String> ,所以他不是一个,可以采用下面这种方式)
- userservice