La característica afinidad de Dispatcher correlaciona una dirección IP de cliente con un servidor de programa de fondo. La afinidad se establece una vez que coincide con el clúster la dirección IP de destino de un paquete, el puerto de destino
coincide con el puerto de Load Balancer y la dirección IP de origen coincide.
Acerca de esta tarea
Cuando se establece la afinidad, los paquetes subsiguientes se envían al mismo servidor de fondo. Cuando se interrumpe la afinidad, porque un servidor está inactivo o
se elimina un servidor, se interrumpen toda la afinidad y, por consiguiente, las conexiones
con ese servidor. Además,
en la línea de mandatos o en los clientes de la GUI no aparece información de "conexión". Sólo se utiliza el número de registros de afinidad activos.
Este enfoque tiene las ventajas de proporcionar una afinidad resistente y de ser
más eficiente para Load Balancer. El método de afinidad que se utiliza disminuye el uso de CPU y de memoria si se compara con el reenvío de conexiones.
Avoid trouble: La eliminación de un registro de afinidad también interrumpe
conexiones, por lo que cuando migre de Load Balancer para IPv4 a Load
Balancer para IPv4 e IPv6, el valor que ha establecido como valor
máximo de staletimeout debe utilizarse como el valor de stickytime
de Load Balancer para IPv4 e IPv6.
gotcha
Elija un algoritmo de
selección basándose en cómo Load Balancer debe direccionar las conexiones.
Puede seleccionar los algoritmos de selección siguientes:
- affinity
- Especifica que cuando un paquete proviene del mismo cliente
que el paquete anterior, la solicitud se dirigirá al mismo servidor
que el
paquete anterior. Con el tiempo, el cliente terminará el envío de
paquetes y el registro de afinidad desaparecerá.
Cada registro de
afinidad existe durante el valor de stickytime, que es en segundos:
- Si se reciben conexiones subsiguientes dentro del intervalo del valor
de permanencia en memoria (stickytime), el registro de afinidad seguirá siendo válido
y la solicitud se dirigirá al mismo servidor.
- Si no se reciben conexiones subsiguientes dentro del intervalo del
valor de stickytime, el registro se depura. Load Balancer seleccionará un
nuevo servidor para una conexión que se reciba después de que el valor de
stickytime haya caducado.
Puede utilizar el mandato quiesce
para poner a un servidor fuera de línea. El servidor pasará a estar inactivo una vez que caduque el valor de tiempo sin actividad (staletimeout).
Este es un ejemplo del mandato quiesce:dscontrol manager quiesce servidor
- connection
- Especifica que cuando se recibe una nueva conexión TCP de un
cliente, Load Balancer elegirá el servidor en ese momento y le remitirá
los paquetes. Si llega una conexión subsiguiente procedente del mismo
cliente, Load Balancer la trata como si fuera una nueva conexión no
relacionada y elige un servidor apropiado en ese momento.
- connection+affinity
- Especifica que cuando llega un paquete de una conexión
existente, se reenvía al servidor que se eligió para esa
conexión. Si el paquete no pertenece a una conexión existente, pero el
paquete llega del mismo cliente, Load Balancer selecciona el mismo
servidor que se eligió para la conexión anterior.
El comportamiento
para el algoritmo conexión+afinidad es similar al del algoritmo de afinidad,
pero el valor de tiempo de espera para la afinidad se calcula desde el inicio
de cada conexión. Esto significa que si el tiempo entre el inicio de dos
conexiones del mismo cliente es menor que el valor de stickytime,
ambas conexiones se reenviarán al mismo servidor.