Redisson 썸네일형 리스트형 Redisson 분산락 고도화 💥 Redisson Pub/Sub을 이용한 분산락을 프로젝트에 적용하면서, 분산락이 필요한 기능마다 Facade 객체를 만들거나 부가적인 기능을 제공하는 코드를 계속해서 작성해야 하는 문제가 발생했다.@Componentclass LockPostLikeFacade( private val redissonClient: RedissonClient, private val postLikeService: PostLikeService,) { fun increase(postId: Long) { val lock = redissonClient.getLock(postId.toString()) try { val available = lock.tryLock(5, 3,.. 더보기 동시성 문제와 해결 방법들 - 2편 (분산락 with. Database Lock, Redis) 지난 포스팅에서 동시성 문제 해결 방법으로 Synchronized에 대해서 알아보았다. Synchronized를 활용한 동시성 해결은 분산 환경에서는 활용될 수 없다. 이번 포스팅에서는 데이터 베이스 Lock, 레디스를 활용한 분산락을 통해 동시성을 해결하는 방법에 대해서 알아보고자 한다. ✔️ Pessimistic Lock 활용 - Database Level 데이터 베이스에서 지원하는 Pessimistic Lock(비관적 락)을 활용하여 실제 데이터 베이스에 Exclusive Lock을 걸어서 데이터 정합성을 보장할 수 있다. 🔗 Exclusive Lock 배타적 잠금, 쓰기 잠금이라고 불린다. 한 트랜잭션에서 데이터를 변경하거나 쓰고자 할 때, 해당 트랜잭션이 완료될 때까지 레코드(row), 테이블(.. 더보기 이전 1 다음