Caché distribuida y consistencia de datos de la base de datos

Tome la consistencia de redis y caché de base de datos como ejemplo

Redis caché y consistencia de la base de datos

Introduce brevemente la solución

1. Sincronización en tiempo real

Si el requisito de una coherencia fuerte es relativamente alto, se debe adoptar un esquema de sincronización en tiempo real, es decir, la consulta de caché de consulta no se puede recuperar de la base de datos y guardar en la caché; al actualizar la caché, primero actualice la base de datos y luego caduque la configuración de la caché (se recomienda no actualizar el contenido de la caché) , Establecer directamente la caducidad de la memoria caché).

@Cacheable: se usa cuando se consulta, tenga en cuenta que el tipo largo debe convertirse al tipo Sting, de lo contrario se lanzará una excepción
@CachePut: se usa al actualizar, usando esta anotación, los datos se consultarán desde el DB
@CacheEvict: se usa cuando se elimina;
@Caching: uso combinado

Dos, cola asincrónica

Para aquellos con un alto grado de concurrencia, las colas asíncronas se pueden usar para la sincronización, y el middleware de mensajes como kafka se puede usar para manejar la producción y el consumo de mensajes.
Inserte la descripción de la imagen aquí

Tercero, use el canal de herramientas de sincronización de Ali

El método de implementación del canal es simular el mecanismo de sincronización de mysql slave y master, monitorear la actualización del registro de bitlog de DB para activar la actualización de la caché, este método puede liberar las manos del programador y reducir la carga de trabajo, pero existen algunas limitaciones al usarlo.
Una lección descifra el canal de Alibaba
Inserte la descripción de la imagen aquí

  1. El maestro registrará los cambios en el registro binario (registro binario) (estos registros se denominan eventos de registro binario, eventos de registro binario, que se pueden ver a través de los eventos show binlog);
  2. El esclavo copia los eventos de registro binario del maestro en su registro de retransmisión;
  3. El esclavo rehace los eventos en el registro de retransmisión, que cambiará para reflejar sus propios datos.

Inserte la descripción de la imagen aquí

  1. canal simula el protocolo interactivo de mysql slave, finge ser mysql slave y envía un protocolo de volcado a mysql master
  2. El maestro mysql recibe la solicitud de volcado y comienza a enviar el registro binario al esclavo (es decir, canal)
  3. Canal analiza el objeto de registro binario (originalmente flujo de bytes)

Cuarto, el uso de la función personalizada UDF

Frente a la API de mysql para la programación y el uso de disparadores para la sincronización de caché, UDF se implementa principalmente en lenguaje c / c ++, y el costo de aprendizaje es alto.

La función personalizada UDF es el activador de la base de datos. Es un procedimiento almacenado especial relacionado con los eventos de la tabla. Cuando la tabla de la base de datos tiene un evento, activará la operación de ciertas funciones.

138 artículos originales publicados · elogiados 3 · visitas 7214

Supongo que te gusta

Origin blog.csdn.net/weixin_43719015/article/details/105443514
Recomendado
Clasificación