redisson

TIL/Trouble Shooting

[TS] 실시간 재고 동시성 문제

예약 구매 시스템 프로젝트를 진행하면서 재고 처리를 구현하던 중 동시성 문제를 해결하기 위해 학습하고 시도한 내용입니다. 동시성 문제 동시성 문제란 동시에 여러 쓰레드가 하나의 자원에 접근하면서, 서로의 작업을 간섭하게는 문제이다. 이로 인해, 예상한 값과 다른 결과가 나올 수 있다. 테스트 시나리오 예약 구매 상품 A가 있으며, 초기 재고 수량은 10개이다. 해당 상품을 구매하려고 10000명의 사용자가 접근한다. 위 상황에서 결제 화면에 진입하면 재고 수량을 감소시키고, 결제 프로세스 진행 중 어떠한 이유로 이탈한다면 재고 수량을 증가 시켜야 한다. 이때, 여러 쓰레드가 동시에 접근하면서 결제 완료된 재고 수량이 10개를 초과하는 문제가 발생하였다. 해결하기 데이터베이스 락 데이터베이스에 직접 Loc..

dbssk
'redisson' 태그의 글 목록