天天看點

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

以此類推 實作輪訓叢集政策