Red de conocimiento informático - Problemas con los teléfonos móviles - Análisis de pérdida de datos en la replicación maestro-esclavo de Redis

Análisis de pérdida de datos en la replicación maestro-esclavo de Redis

1. Puede producirse una pérdida de datos durante el cambio maestro-esclavo

Debido a que la replicación maestro-esclavo es asincrónica, es posible que algunos datos no se copien al esclavo, el host dejará de funcionar y se perderá en este momento. tiempo.Datos parciales

2. Pérdida de datos causada por el cerebro dividido

El cerebro dividido significa que la máquina principal se desconecta repentinamente de la red normal. En este caso, una máquina maestra se desconecta repentinamente de la red normal y otras máquinas esclavas no pueden conectarse, pero de hecho la máquina maestra todavía está funcionando. En este momento, Sentinel puede pensar que la máquina maestra está inactiva y luego iniciar la elección. , cambie otras máquinas esclavas a la máquina maestra. En este momento, habrá dos máquinas maestras en el clúster. Este es el llamado cerebro dividido. La máquina maestra está inactiva. En este momento, aunque una estación esclava se haya cambiado a la estación maestra, es posible que el cliente no tenga tiempo de cambiar a la nueva estación maestra y continúe escribiendo datos en la antigua estación maestra. También es posible que se pierdan datos en este momento. cuando la antigua estación maestra Cuando la estación maestra se recupere nuevamente, se colgará en la nueva estación maestra como una estación esclava, borrará sus propios datos y copiará los datos de la nueva estación maestra nuevamente

Configuración para reducir pérdida de datos:

min-slaves-to-write 1

min-slaves-max-lag 10

Requiere al menos 1 esclavo, replicación y sincronización de datos El retraso no puede exceder los 10 segundos, si todos los esclavos lo tienen, el retraso de replicación y sincronización de datos no puede exceder los 10 segundos. Si los retrasos en la replicación y sincronización de datos de todos los dispositivos esclavos superan los 10 segundos, el dispositivo maestro no recibirá más solicitudes en este momento

A través de la configuración min-slaves-max-lag, puede asegurarse de que una vez el dispositivo esclavo Si el retraso en la copia de datos y el reconocimiento es demasiado largo, se considerará que el dispositivo principal está inactivo y se perderán demasiados datos. Esto puede reducir la pérdida de datos causada por algunos datos que no se sincronizan con la estación esclava cuando la estación maestra baja a un nivel controlable

Si la estación maestra se cae y pierde la conexión con otras estaciones esclavas, estas dos Esta configuración puede garantizar que cuando los datos no puedan continuar enviándose al número especificado de estaciones esclavas y la estación esclava no se envíe un mensaje de confirmación a sí misma durante más de 10 segundos, la solicitud de escritura del cliente será rechazada, de modo que el La antigua estación maestra no los aceptará después de desconectar el cerebro. Nuevos datos en el lado del cliente para evitar la pérdida de datos. Número de grupo de comunicación y aprendizaje: 938837867 Contraseña: 555 Compartirá algunos videoclips grabados por arquitectos senior: Spring, MyBatis, análisis de código fuente Netty, alta concurrencia, alto rendimiento, distribuido, principios de arquitectura de microservicios, optimización del rendimiento de JVM, espera de arquitectura distribuida. Estas se han convertido en habilidades esenciales para los arquitectos.