목록 보기
풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson
백엔드

풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

마켓컬리
마켓컬리
2023년 5월 17일

두줄요약

풀필먼트 입고 서비스의 동시성 문제를 해결하기 위해 Redisson 기반 분산락을 적용한 사례를 소개했습니다. AOP와 어노테이션으로 락을 추상화하고 트랜잭션 커밋 이후 해제로 정합성을 보장했습니다.

핵심 내용

  • 풀필먼트 입고 서비스의 여러 동시성 문제를 해결하기 위해 Redis 기반 Redisson 분산락 도입
  • Redisson 선택 이유로 Lock interface 지원, Pub/Sub 기반 획득 방식, 기존 Redis 스택 활용성 강조
  • @DistributedLock 어노테이션과 AOP로 락 처리 로직을 분리하고, waitTime, leaseTime, SpEL 기반 키를 유연하게 구성
  • REQUIRES_NEW 트랜잭션과 결합해 커밋 이후 락 해제로 데이터 정합성 보장

적용해볼 점

  • 쿠폰 차감, 중복 발주 등록처럼 동시성에 취약한 기능에 분산락 적용 가능성 검토
  • 비즈니스 로직과 락 처리 분리로 재사용성과 가독성 개선
  • 락 해제 시점과 트랜잭션 경계가 정합성에 미치는 영향 점검

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...