Tuve la siguiente implementación de centinela: 3 instancias de redis en diferentes servidores, 3 centinelas en cada uno de estos servidores.
Ahora, me di cuenta de que el maestro actual no tiene mucha memoria, así que detuve la instancia de Sentinel y Redis en este servidor en particular. E hice la misma configuración en una nueva máquina. SO, todavía tengo la misma implementación, 3 instancias redis y 3 centinelas.
El problema es que, ahora los centinelas dicen que el maestro está inactivo, ya que creen que el maestro es el servidor que eliminé. ¿Qué debo hacer para decirle a Sentinel que no necesita incluir ese servidor en bucle?
De los documentos sobre Redis Sentinel, en el capítulo Agregar o eliminar Sentinels :
Eliminar un Sentinel es un poco más complejo: los Sentinel nunca olvidan los Sentinel ya vistos, incluso si no están accesibles durante mucho tiempo, ya que no queremos cambiar dinámicamente la mayoría necesaria para autorizar una conmutación por error y la creación de una nueva configuración. número. Entonces, para eliminar un Sentinel, se deben realizar los siguientes pasos en ausencia de particiones de red:
- Detenga el proceso de Sentinel del Sentinel que desea eliminar.
- Envíe un
SENTINEL RESET *a todas las demás instancias de Sentinel (en lugar de *, puede usar el nombre exacto del maestro si desea restablecer solo un maestro). Uno tras otro, esperando al menos 30 segundos entre instancias.- Verifique que todos los Sentinels estén de acuerdo con el número de Sentinels actualmente activos, inspeccionando la salida del nombre maestro de
SENTINEL MASTER masternamede cada Sentinel.
Más lejos:
Eliminación del antiguo maestro o esclavos inalcanzables.
Los centinelas nunca se olvidan de los esclavos de un amo dado, incluso cuando están inalcanzables durante mucho tiempo. Esto es útil porque Sentinels debería poder reconfigurar correctamente un esclavo que regresa después de una partición de red o un evento de falla.
Además, después de una conmutación por error, el maestro conmutado por error se agrega virtualmente como un esclavo del nuevo maestro, de esta manera se reconfigurará para replicar con el nuevo maestro tan pronto como esté disponible nuevamente.
Sin embargo, a veces desea eliminar un esclavo (que puede ser el antiguo maestro) para siempre de la lista de esclavos monitoreados por Sentinels.
Para hacer esto, debe enviar un comando
SENTINEL RESET masternamea todos los Sentinels: actualizarán la lista de esclavos dentro de los próximos 10 segundos, agregando solo los enumerados como replicados correctamente desde la salida deINFOmaestra actual.