Ribbon 负载均衡

115 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述