Spring-cloud学习笔记---Ribbon服务器端和客户端负载均衡

Spring-cloud学习笔记—Ribbon服务器端和客户端负载均衡

1. 关于负载均衡

  1. 负载均衡⼀般分为服务器端负载均衡客户端负载均衡
  2. 所谓服务器端负载均衡,⽐如Nginx、F5这些,请求到达服务器之后由这些负载均衡器根据⼀定的算法将请求路由到⽬标服务器处理。
  3. 所谓客户端负载均衡,⽐如我们要说的Ribbon,服务消费者客户端会有⼀个服务器地址列表,调⽤⽅在请求前通过⼀定的负载均衡算法选择⼀个服务器进⾏访问,负载均衡算法的执⾏是在请求客户端进⾏。
  4. Ribbon是Netflix发布的负载均衡器。Eureka⼀般配合Ribbon进⾏使⽤,Ribbon利⽤从Eureka中读取到服务信息,在调⽤服务提供者提供的服务时,会根据⼀定的算法进⾏负载。
    在这里插入图片描述

2. Ribbon负载均衡策略

  1. 不需要引⼊额外的Jar坐标,因为在服务消费者中我们引⼊过eureka-client,它会引⼊Ribbon相关Jar

  2. 代码中使⽤如下,在RestTemplate上添加对应注解即可
    在这里插入图片描述

  3. Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接⼝com.netflix.loadbalancer.IRule ,其中choose方法是IRule的核心方法,

    public interface IRule{
        /*
         * choose one alive server from lb.allServers or
         * lb.upServers according to key
         * 
         * @return choosen Server object. NULL is returned if none
         *  server is available 
         */
    
        public Server choose(Object key);
        
        public void setLoadBalancer(ILoadBalancer lb);
        
        public ILoadBalancer getLoadBalancer();    
    }
    
  4. IRule的类树如下
    在这里插入图片描述

  5. 负载均衡策略
    在这里插入图片描述

  6. 修改某个微服务的负载均衡策略,针对的被调⽤⽅微服务名称

    #针对的被调⽤⽅微服务名称,不加微服务名称就是全局⽣效
    lagou-service-resume:
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载策略调整
    
  7. 修改全局微服务的负载均衡策略

    #不加微服务名称就是针对全局⽣效的负载均衡策略
    ribbon:
      NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载策略调整
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值