inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

DB 동시성 이슈

689

이민준
0

안녕하세요.

선생님의 강의를 수강하고 MSA프로젝트를 수행하던 중 의문이 생겨 질문드립니다.

상황 :

 - order-service가 A, B 두개의 애플리케이션으로 운영되고 있습니다.

 - 두개의 서비스는 단일 DB를 공유합니다.

 - 주문 수량만큼 아이템의 수량이 감소됩니다.

 - 아이템의 수량은 1개가 남아있습니다.

 - 이때 A, B가 동시에 아이템을 한개씩 주문합니다.

이슈 : 

 1. A의 서비스 로직에서 아이템의 수량이 주문 가능함을 확인

 2. B의 서비스 로직에서 아이템의 수량이 주문 가능함을 확인

 3. A는 주문 로직을 수행, 아이템의 수량은 0이 됨

 4. B는 2.에서 주문 가능함을 확인했기 때문에 주문 로직을 수행

 5. B는 주문 할 수 없는 상황임에도 불구하고 주문이 완료됨

2번을 실행할 때 modified_date를 저장하고 있다가 4번에서 modified_date를 비교하여

2번과 4번 사이에 데이터가 수정되었는지를 확인하는 방법도 생각해보았는데요.

그 사이에 데이터가 수정되었다고 해서 매번 요청을 거절하는 것도 문제가 있다고 생각이 됩니다.

시간이 굉장히 짧기 때문에 이런 일이 일어날까 싶기도 한데...

실무에서는 어떻게 생각하시는지, 어떻게 해결하시는지 궁금합니다.

강의 내용에 다소 벗어난 내용이라 죄송하지만ㅠㅠ

선생님의 답변을 듣고 싶어 질문 드립니다.

감사합니다.

db 동시성

답변 1

0

김영한

안녕하세요. 이민준님

다음을 참고해주세요.

https://www.inflearn.com/questions/17498

https://www.inflearn.com/questions/228082

감사합니다.

동시성 문제에 대해 질문합니다.

0

421

1

강의 자료랑 소스코드랑 터미널에서 치는 화면이 너무 작아요..ㅠ

0

552

1

만들고 계신 강의가 있으시다는 글을 보고 질문드려요

0

526

1

자바와 데이터베이스에 대한 기본기 보강 문제...

0

434

1

강사님 오토laout 강의 7월 중순에 나오신다하셨는데 길어져서 질문 남겨요!

0

527

1