공부!

공부!

2. DB

보호되어 있는 글입니다.

공부!

1. 자바

보호되어 있는 글입니다.

공부!

레디스 분산락 사용하기 by Redisson

# 분산 서버 환경과 멀티스레드 환경에서 모두 간단히 적용 가능한 락이 없을까? 이전 글에서 사용했던 것과 같은 예시를 들겠습니다. 100명의 구매자가 100개의 상품을 동시에 1개씩 구매하는 상황입니다. 모든 사용자는 구매에 성공해야하고, 모든 사용자의 구매가 끝났을 때 상품의 재고는 0개가 되어야 합니다. 지난 글에서는 트랜잭션에 사용하는 데이터에 대해 PESSIMISTIC_WRITE를 걸어 해당 레코드에 다른 트랜잭션이 접근하지 못하게 만들었지만 이번에는 조금 다른 방법을 사용하고자 합니다. 사실은 쓰면 안되지만! synchronized를 쓰거나, 내부 락을 이용해서 어플리케이션 코드 내에서 멀티 스레드로 동작하여 동시성 문제를 나타낼 수 있는 문제를 해결할 수 있습니다(스프링 부트의 톰캣 기준으로..

공부!

DB 데이터 동시성 : 비관적, 낙관적 락 / 공유락, 배타락

프로젝트에서 localhost에 띄운 MySQL을 사용하고 있습니다~ yml파일 모습입니다. h2는 레코드의 r/w연산에 대해 테이블 단위로 락을 거는 기본 동작을 사용합니다.. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/market?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8 username: root jpa: hibernate: ddl-auto: update # 상황 : 100명의 구매자가 100개가 존재하는 상품을 1개씩 구매 Customer 클래스 인스턴스인 구매자 100명이 각각 1개의 스레드가 되어..

김부추
'공부!' 카테고리의 글 목록 (2 Page)