Lettuce 이용 동시성 문제 해결


Lettuce 이용 동시성 문제 해결

redis 활용 분산락 구현 트래픽이 많은 서비스에서는 redis를 사용하는 것이 가장 좋다. 인메모리데이터베이스라 굉장히 빠르기에 Lettuce setnx 명령어를 활용하여 분산락 구현 Setnx : set if not exist 키와 벨류를 Set 할 때 기존의 값이 없을 때만 set spin lock 방식 retry를 개발자가 직접 작성해줘야됨 lock을 획득하려는 thread가 반복적으로 확인하면서 lock을 획득하는 방식 Redis를 사용하기에 RedisRepository를 구현해준다. Facade를 만들어서 lock을 획득할 때까지 while문을 돌린다. spin Lock 방식이기에 Redis에 부하를 줄 수 있어서 sleep을 넣어줬다. lock을 획득하면 decrease 메서드를 수행하고 꼭 UnLock 한다. 테스트 코드를 작성하면 테스트가 정상 수행된다. 이때 redis를 킨 상태여야되고, redis에 해당 Key 값이 없어야된다. 출처 : 재고시스템으로 알아보는 ...


#Lettuce #Redis #Synchronized #동시성

원문링크 : Lettuce 이용 동시성 문제 해결