天天看点

SpringCloud Ribbon 负载均衡 轮训算法

负载均衡算法:

RestTemplate接口请求数 % 服务器集群总数量 = 实际调用服务器的位置下标

// 获取集群中可用服务列表信息 字符串格式
    List<String> services = discoveryClient.getServices();
    // 获取下标为0的 服务信息
    String serviceInfo = services.get(0);
    
    // 获取指定名称 : provider-service 服务列表 服务实例
    List<ServiceInstance> instances = discoveryClient.getInstances("provider-service");
    // 获取下标为0 的服务实例对象
    ServiceInstance serviceInstance = instances.get(0);
           
可以通过该方法 获取指定名称的服务实例对象集合
List<ServiceInstance> instances = discoveryClient.getInstances("provider-service");
      

如:

   LIst[0] instances  = 127.0.0.1:8081

   LIst[1] instances  = 127.0.0.1:8082

8081+8082 组成简单集群, 提供 2 个可用服务,集群总计 2 台

按照内部轮训算法 实现原理如下:

当客户端请求为1时 : 1 % 2 = 1  调用服务地址 127.0.0.1:8082

当客户端请求为2时 : 2 % 2 = 0  调用服务地址 127.0.0.1:8081

以此类推 实现轮训集群策略