Ribbon 负载均衡
1.Ribbon 负载均衡流程
1.2原理
发送请求后会被LoadBalancerInterceptor负载均衡拦截器拦截下来交给RibbonLoadBanlancerClient
,RibbonLoadBanlancerClient会把服务交给一个名为DynamicServerListLoadBalancer的东西他就会去eureka里拉取服务列表并得到多个服务的信息,DynamicServerListLoadBalancer会从IRULE里挑一个服务器轮询并把这个值给返回到RibbonLoadBanlancerClient,RibbonLoadBanlancerClient来替换我们的服务器昵称就得到了真实的请求地址。
1.3负载均衡策略
1.3.1修改负载均衡策略
1.3.2 方案1 适用于全局,每次调用都会实现。
// 把轮询规则修改为随机
@Bean
public IRule randomRule(){
return new RandomRule();
}
1.3.3 方案2 针对某个微服务进行配置。
userservice:
ribbon:
NFLoadBalancerRuLeCLassName: com.netflix.loadbalancer.RandomRuLe #负载均衡规则
1.4 饥饿加载
没开饥饿加载前,第一次访问很慢。
1.4.1 修改加载策略
在配置文件中配置
ribbon:
eager-load:
enabled: true # 开启饥饿加载
clients: # 指定饥饿加载的服务昵称
- userserver