dubbo-- equilibrio de carga

dubbo ofrece la estrategia de equilibrio de carga de cuatro: al azar, robin, menos activo, el hash coherente

A, RandomLoadBalance-- azar

    protegida <T> invocador <T> doSelect (List <invocador <T >> invocadores, URL url, Invocación invocación) {
         // Número de invocadores 
        int longitud = invokers.size ();
        // Cada invocador tiene el mismo peso? 
        boolean sameWeight = verdadero ;
        // el peso de cada invocadores 
        int pesos [] = nuevo  int [longitud];
        // de la primera invocador peso 
        int firstWeight = getWeight (invokers.get (0 ), la invocación); 
        pesos [ 0] = firstWeight;
        // La suma de los pesos
        int pesoTotal = firstWeight;
        para ( int i = 1; i <longitud; i ++ ) {
             int peso = getWeight (invokers.get (i), la invocación);
            // Guardar para su uso posterior 
            pesos [i] = peso;
            // Suma 
            pesoTotal + = peso;
            si (peso sameWeight && =! {firstWeight) 
                sameWeight = false ; 
            } 
        } 
        // 有权重,按权重随机
        si (pesoTotal> 0 &&!sameWeight) {
             // 0 - peso total (no incluido) un número aleatorio 
            int offset = ThreadLocalRandom.current () la nextInt (pesoTotal) ;.
             // Devuelve una matriz correspondiente al número al azar un invocador 
            para ( int i = 0; I <longitud ; I ++ ) { 
                OFFSET - = pesos [I];
                 IF (offset <0 ) {
                     retorno invokers.get (I); 
                } 
            } 
        } 
        // Todos los nodos es 0 o igualmente ponderados, devuelve una matriz aleatoria de invocador 
        de retorno invocadores. GET (ThreadLocalRandom.current () la nextInt (longitud).); 
    }

Resumen: el equilibrio de carga azar: de acuerdo a cada nodo pesos, al azar (usando ThreadLocalRandom thread-safe), se divide en dos casos específicos:

1, cada nodo del mismo peso, devuelve un invocador aleatorio.

2, no es el mismo peso, el peso total generado de acuerdo con un número aleatorio, el número aleatorio y vuelve intervalo invocador correspondiente.

Características: está inclinada una pequeña cantidad de solicitudes pueden ocurrir, cuando se aumenta la solicitud, el más equilibrado.

Dos, sondeo RoundRobinLoadBalance--

 

Tres, LeastActiveLoadBalance-- actividad mínima

 

Cuatro, consistencia ConsistentHashLoadBalance-- Hash

 

Supongo que te gusta

Origin www.cnblogs.com/wqff-biubiu/p/12501555.html
Recomendado
Clasificación