728x90

동시성제어 2

[Spring] Lock을 이용한 동시성 제어 - 낙관적락/비관적락/분산락 (2)적용

콘서트 예약 서비스에서 발생할 수 있는 동시성 문제를 파악해보고 앞서 살펴본 동시성 제어에 대하여 적용해보았다. Lock을 이용한 동시성 제어 개념은 이전 글을 참고하면 된다. 콘서트 예약 서비스 기능 중 동시성 제어가 필요한 기능으로 다음 항목을 선정하였다.콘서트 좌석 예약포인트 충전포인트 사용 각각에 대해 적합한 방법을 고민한 결과 다음과 같다. 실제 구현 코드는 GitHub에 있다.   1. 콘서트 좌석 예약적절한 방법: 분산락(pub/sub) > 비관적락 > 낙관적락선택한 방법: 분산락(pub/sub) + 낙관적락선택 이유콘서트 예매는 동시 접속자가 많기 때문에 충돌이 많이 발생할 수 있다. 따라서 동시성 이슈 발생 가능성이 매우 높다. 또한 분산 환경에서의 동시성 제어가 필요하다.분산 환경에서 ..

Spring Boot 2024.12.27

[Spring] Lock을 이용한 동시성 제어 - 낙관적락/비관적락/분산락 (1)개념

목차낙관적락 (s-lock, 공유락, optimistic lock)비관적락 (x-lock, 베타락, pessimistic lock) 낙관적락과 비관적락 성능/효율성 테스트분산락 (Redis)Redisson 라이브러리 사용시 주의점 분산 환경에서 동시성 제어를 위해 사용하는 Lock의 종류와 각각의 특징을 정리해보고자한다. 1. 낙관적락 (s-lock, 공유락, optimistic lock)특징트랜잭션 충돌이 발생하지 않을 것이라고 낙관적으로 가정.읽기 잠금 ( select ..from.. where ... for share )으로 한쪽이 커밋 할 때 까지 쓰기 잠금.s-lock을 설정한 트랜잭션은 해당 row를 읽기만 가능하다.충돌 빈도가 적을 경우 권장되며, 동시 요청 중 한 건만 성공해야하는 케이스에..

Spring Boot 2024.12.26
728x90