zoukankan      html  css  js  c++  java
  • 19 Spring Cloud Ribbon自定义负载均衡策略

    通过实现 IRule 接口可以自定义负载策略,主要的选择服务逻辑在 choose 方法中。我们这边只是演示怎么自定义负载策略,所以没写选择的逻辑,直接返回服务列表中第一个服务。

    public class MyRule implements IRule {
        private ILoadBalancer lb;
        @Override
        public Server choose(Object key) {
            List<Server> servers = lb.getAllServers();
            for (Server server : servers) {
                System.out.println(server.getHostPort());
            }
            return servers.get(0);
        }
        @Override
        public void setLoadBalancer(ILoadBalancer lb) {
            this.lb = lb;
        }
        @Override
        public ILoadBalancer getLoadBalancer() {
            return lb;
        }
    }
    


    在 Spring Cloud 中,可通过配置的方式使用自定义的负载策略,ribbon-config-demo 是调用的服务名称。  

    ribbon-config-demo.ribbon.NFLoadBalancerRuleClassName=net.biancheng.ribbon_eureka_demo.rule.MyRule
    

    重启服务,访问调用了其他服务的接口,可以看到控制台的输出信息中已经有了我们自定义策略中输出的服务信息,并且每次都是调用第一个服务。这跟我们的逻辑是相匹配的。  

  • 相关阅读:
    阻塞赋值和非阻塞赋值
    组合逻辑和时序逻辑
    信道估计常用算法
    Verilog有限状态机FSM
    希尔伯特变换
    微信小程序取消分享的两种方式
    orm 常用字段
    drf获取请求过来时的request
    WeChat--API
    Django之admin源码浅析
  • 原文地址:https://www.cnblogs.com/jrkl/p/14382764.html
Copyright © 2011-2022 走看看