Redisson 분산락
·
프로젝트/개발
들어가며 학부 시절 마인크래프트 서버 포럼을 개발해 보면서 각 서버별 인원수 체크를 위한 검사를 위해 크론잡을 수행한 경험이 있다. 당시 개발 경험을 위해 클러스터링 환경으로 구성했는데, 문제는 배치가 수행되면서 모든 서버가 일괄적으로 크론이 실행되는 문제가 있었다. 너무 당연하지만, 당시 하나의 서버만 구성해 운영하는 것을 생각하던 버릇이 있던 나에겐 꽤 신선한 충격이었다. 당시엔 레디스의 클러스터링 환경 분산락 구현체인 RedLock으로 문제를 해결했는데, 조금 많이 과하기도 하고, RedLock 알고리즘의 경우 각 레디스가 위치한 서버 간에 시간 동기화와 락 획득에 실패한 경우 실패한 클라이언트는 획득한 부분 락을 모두 푸는 작업을 요청하는 등 매우 특별한 상황에서 문제를 해결하는 알고리듬인 것을 ..