728x90

Spring 13

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

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

Spring Boot 2024.12.27

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

목차낙관적락 (optimistic lock)비관적락 (pessimistic lock) - s-lock (공유락)- x-lock (배타락)낙관적락과 비관적락 성능/효율성 테스트분산락 (Redis)Redisson 라이브러리 사용시 주의점 분산 환경에서 동시성 제어를 위해 사용하는 Lock의 종류와 각각의 특징을 정리해보고자한다. 1. 낙관적락 (optimistic lock)특징version을 사용하여 충돌을 예방하며, DB Lock 을 설정해 동시성 문제를 제어하는 것이 아니라 읽은 시점과 수정 시점의 데이터 변경 여부를 확인해 제어하는 방식이다.트랜잭션, Lock 설정 없이 데이터 정합성을 보장할 수 있으므로 비관적 락보다 성능적으로 우위에 있다.충돌 빈도가 적을 경우 권장하며, 동시 요청 중 한건만 성공..

Spring Boot 2024.12.26

[Spring] RedisSerializer 알고 쓰기! 종류 별 특징과 주의 사항

목차RedisSerializer 란?RedisSerializer 구현체 종류와 특징2.1 JdkSerializationRedisSerializer2.2 StringRedisSerializer2.3 Jackson2JsonRedisSerializer2.4 GenericJackson2JsonRedisSerializer그럼 우리는 어떻게 사용해야 할까? Spring Boot에서 RedisConfig 파일을 작성한 예시를 검색하다 보면 블로그마다 설정이 다른 것을 볼 수 있다.Serializer 설정을 안하는 케이스, StringRedisSerializer, Jackson2JsonRedisSerializer, GenericJackson2JsonRedisSerializer 를 사용하는 케이스.. 과연, 어떤 차이가..

Spring Boot 2024.12.04
728x90