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