회고록
레디스 (Redisson)를 이용한 분산락
sehunbang
2024. 4. 12. 17:48
Redisson을 이용한 분산락 적용 락을 점유 중인 스레드가 락의 해제했으면 다음 대기중인 스레드가 다음 락을 획득을 시도하여 획득을 성공하면 락을 점유하는 방식

락의 만료되는 시간과 점유하는 시간을 초단위로 하는 이유는 테스트를 돌려보니깐 너무 타이트하면 중간중간에 실패가 되서 튜터님께 물어봤는데 넉넉히 잡아서 설정하는것이 좋다 나중에 서버에러등 날 수 있으니 조언을 받았습니다.
분산락과 레디스를 쓴 이유 상품의 수량만큼 데이터베이스에 접근을 하게되는데 데이터베이스의 접근을 줄이기위해서 레디스를 이용하여 레디스에 상품의 수량을 저장시키고 레디스에 있는 상품의 수량을 업데이트 시켜서 마지막에 상품의 수량이 0일 될때 데이터베이스에 한번의 접근하게 됩니다.

총 1500의 스레드
평균 응답시간: 2442.27ms
가장 빠른 응답시간: 94ms
가장 느린 응답시간: 4071ms

ms 기준이며 1500개의 스레드일 때 3500~4000ms 시간때에 스레드의 응답시간이 제일 많이 분포되어 있는것을 확인할수 있는 그래프입니다.

총 500의 스레드
평균 응답시간: 60.71ms
가장 빠른 응답시간: 2ms
가장 느린 응답시간: 285ms

ms 기준이며 500개의 스레드일 때 0~100ms 시간때에 스레드의 응답시간이 제일 많이 분포되어 있는것을 확인할 수 있는 그래프입니다.