Red de conocimiento informático - Consumibles informáticos - Consideraciones de programación en bloqueos distribuidos en entornos de alta concurrencia

Consideraciones de programación en bloqueos distribuidos en entornos de alta concurrencia

Un problema al que siempre se debe prestar atención cuando se trata de alta concurrencia: la atomicidad

Los bloqueos distribuidos comúnmente utilizados incluyen redis, zookeeper y seata. Redis, que actualmente se usa con más frecuencia, utiliza el componente de bloqueo distribuido redisson.

Si está operando directamente redisTemplate, debe prestar atención a liberar el bloqueo finalmente para evitar problemas de programa que hagan que el bloqueo no se pueda liberar.

Al usar redisson.unlock, preste atención a agregar un juicio lógico (redLock.isLocked() &&redLock.isHeldByCurrentThread()) para evitar que se produzcan errores en algunas situaciones de concurrencia extrema EleagleMonitorStateException: intente bloquear, no. bloqueado por el hilo actual.

Acerca del principio de redissson