Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 16305|Respuesta: 0

[Fuente] La latencia maestro-esclavo de la base de datos conduce a una resolución inexacta de consultas

[Copiar enlace]
Publicado el 2020-4-2 20:41:03 | | | |
【Prefacio】

Cuando los datos alcanzan cierta cantidad, la base de datos se convierte en el cuello de botella de todo el sistema, y la estrategia de optimización generalmente se adopta como separación de lectura y escritura, y la base de datos realiza la separación de lectura y escritura dividiendo la base de datos principal de la base de datos (operación de solicitud de escritura desde la base de datos principal, operación de solicitud de lectura desde la base de datos);

【Ideas para resolver retrasos de datos】

1. El principio de sincronización maestro-esclavo (aquí tomamos como ejemplo el MySQL más popular)

Aquí tienes un diagrama esquemático de una sincronización clásica de datos maestro-esclavo de MySQL mediante binlog:



2. ¿Cómo surgen los problemas?

1. A partir del esquema anterior, no es difícil encontrar que la sincronización maestro-esclavo tiene cierto retardo, que afecta al tamaño del retardo:

(1) El tamaño del retardo depende de la cantidad de datos generados desde la última sincronización hasta el presente

(2) La situación actual de la red entre servidores

(3) La presión del propio servidor maestro-esclavo (CPU, memoria, E/S, etc.)

2. Dado que el servicio de base de datos suele estar en la intranet, y el servidor tendrá una configuración superior (más que la necesidad real) al comprarlo, la sincronización es básicamente muy rápida, generalmente en milisegundos;

3. En escenarios empresariales generales, la latencia de milisegundos puede ignorarse;



4. Existen casos generales y especiales, y algunas situaciones especiales requieren una diferencia de milisegundo en tiempo real. Aquí tienes soluciones comunes para estas situaciones especiales.

3. Soluciones de latencia de datos:

1. Esquema 1: Escribir el programa doble (escribir la base de datos principal y leer la base de datos al mismo tiempo)



2. Esquema 2: Lee el programa para consultar la base de datos principal



3. Esquema 3: Escribir la base de datos principal y escribir la caché (establecer un tiempo de caducidad determinado, generalmente ligeramente superior al retraso máximo de sincronización de la base de datos), leer el programa, leer la caché y leer la base de datos esclava



4. Ventajas y desventajas de los tres programas:

1. Esquema 1: La doble escritura consumirá cierta cantidad de rendimiento, lo cual es relativamente sencillo de implementar y no es adecuado para escenarios de escritura concurrente de alto nivel;

2. Esquema 2: El programa de lectura afectará al rendimiento de la biblioteca principal, que es relativamente sencilla de implementar y no es adecuada para escenarios de lectura concurrente alta.

3. Esquema 3: En la mayoría de los casos, la lectura y la escritura consumen más rendimiento de escritura, lo cual es más complejo de implementar y es adecuado tanto para lecturas y escrituras concurrentes altas (las lecturas y escrituras en caché son muy rápidas);

【Resumen】

1. La implementación es importante, pero más importante es la idea;

2. Muchos principios e ideas subyacentes son universales
Texto original en:https://blog.csdn.net/zhanghan18 ... le/details/91638443




Anterior:.net/c# ado.net ejecuta procedimientos almacenados con valores de retorno
Próximo:MSSQL CON LECTURA SUCIA (SIN BLOQUEO)
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com