¿Cómo lidiar con caché y caché de penetrar en el problema de avalancha

Análisis: Estas dos preguntas, decir la verdad, la mayoría de pequeñas y medianas empresas de software tradicional, difícil de encontrar este problema. Si usted tiene unos grandes proyectos concurrentes, hay un flujo alrededor de unos pocos millones. Estas dos cuestiones deben considerar profundamente.
 

la penetración de la caché, es decir, la piratería datos solicitados intencionalmente no existe en la memoria caché, lo que resulta en el odio todas las peticiones a la base de datos, de modo que la anormalidad conexión de base.
 

Solución:
 

(a) el uso de exclusión mutua, cuando el error de caché, ir a buscar la cerradura, obtener un bloqueo, vaya a la base de datos de la solicitud. No ser bloqueado, vuelva a intentar el período de sueño

 

(ii) una política de actualización asíncrona, independientemente de si o no tomar el valor de la clave directamente devoluciones. Valor Valor mantiene un tiempo de fallo de caché, si la caché expira, hilo asíncrono a leer desde una base de datos, actualizar la memoria caché. Caché de calentamiento queda mucho por hacer (antes de que comenzara el proyecto, para cargar el caché) operación.

 

(C) proporcionar una determina rápidamente si la solicitud es el mecanismo de interceptación válido, por ejemplo, mediante el uso de filtros Bloom para mantener el interior de una serie de clave válida. determinar rápidamente, si la solicitud se realiza por Key válida. Si no es legal, la declaración directa.

 

Caché avalancha que invalidación de caché área grande, al mismo tiempo, esta vez de nuevo una ola de peticiones, solicitudes odio los resultados a la base de datos, lo que resulta en la base de datos de conexión anormal.
 

Solución:
 

(a) a tiempo de caducidad de la caché, además de un valor aleatorio, para evitar el fracaso colectivo.

 

(Ii) utilizar el mutex, pero disminuyó significativamente el programa determinado.

 

(Iii) tampón doble. Tenemos dos caché, caché y caché de A B. Un tiempo de fallo de caché es de 20 minutos, el tampón B sin tiempo muerto. Hacer su propia operación de calentamiento caché. A continuación, los segmentos siguientes puntos

 

I A se lee de la base de datos de caché con retorno directo

II A ningún dato, leer los datos directamente desde el B, volver directamente y de forma asíncrona actualizar iniciar un hilo.

hilos de actualización III actualizan simultáneamente la caché Una caché y B.

Supongo que te gusta

Origin www.cnblogs.com/zhuyeshen/p/12635889.html
Recomendado
Clasificación