Ventajas y desventajas de los bloqueos distribuidos implementados por redis y zk

implementación de redis

Ventajas: buen rendimiento

defecto:

Para una instancia de redismaster, se escribe el valor de la clave de bloqueo, como myLock, y se copiará de forma asíncrona en la instancia de masterslave correspondiente.
Sin embargo, una vez que el redismaster deja de funcionar durante este proceso, el maestro y el respaldo cambian, y el redislave se convierte en redismaster.
Entonces hará que cuando el cliente 2 intente bloquear, el bloqueo se complete en el nuevo redismaster, y el cliente 1 también piense que ha agregado el bloqueo con éxito.
En este momento, varios clientes bloquearán un bloqueo distribuido.
En este momento, el sistema definitivamente tendrá problemas en la semántica comercial, lo que resultará en la generación de varios datos sucios.
Entonces, este es el mayor defecto del bloqueo distribuido de redis causado por rediscluster, o la replicación asíncrona maestro-esclavo de la arquitectura redismaster-esclavo: cuando la instancia de redismaster está inactiva, puede causar que varios clientes completen el bloqueo al mismo tiempo.

implementación ZK

Ventajas: Altamente confiable El propio zk garantiza una alta confiabilidad a través del mecanismo líder+quórum.

Desventajas: El rendimiento del bloqueo distribuido implementado por ZooKeeper no es demasiado alto. ¿por qué?
Porque cada vez en el proceso de creación y liberación del bloqueo, el nodo instantáneo debe crearse y destruirse dinámicamente para realizar la función de bloqueo. Como todos sabemos, la creación y eliminación de nodos en ZK solo puede realizarla el servidor líder, y luego el servidor líder también necesita sincronizar datos con todas las máquinas seguidoras. Esta comunicación de red frecuente tiene una deficiencia de rendimiento muy importante.
 

Supongo que te gusta

Origin blog.csdn.net/qq_29857681/article/details/125661768
Recomendado
Clasificación