토이프로젝트2 Redis 를 이용해서 재고를 관리해보자! https://robin00q.tistory.com/107 글에서 이어집니다! 참고 : (선물하기 시스템의 상품 재고는 어떻게 관리되어질까?) https://techblog.woowahan.com/2709/ DB 에 걸리는 Lock 을 어떻게 해결할까? RDBMS 를 통해 재고관리를 하는 경우, 해당 상품(혹은 옵션) 의 재고를 증가/감소시키려면 필연적으로 해당 Row 에 Lock (동시성 이슈) 을 걸 수 밖에 없다. option_id option_name stock purchaseable (구매가능여부) 1 아디다스 슬리퍼 102 YES 2 아디다스 저지 34 YES option_id 가 1인 row 에 여러 쓰레드가 접근하여, stock 을 증가/감소 시키더라도, 동시에 이를 수행할 수 없기에 하나.. 2022. 8. 3. Kafka 를 이용해서 Eventually Consistency 를 구현해보자! 주문, 결제, 재고의 상태를 맞춰보자! 예시) 결제를 완료하면, 주문의 상태를 결제대기 -> 배송준비, 재고를 한개 감소 하는 로직이 있다고 가정해본다. 1. 만약 주문과 결제의 DB 를 같은 서버의 인스턴스에서 접근가능하다면, 하나의 트랜잭션에 묶여 아래처럼 구현될 것 같다. @Transactional public void finishPayment() { paymentRepository.save(payment); orderRepository.findById(payment.getOrderId()); order.paymentFinished(); prodRepository.findById(payment.getProductId()); prod.minusStock(); } public class Order { .. 2022. 6. 27. 이전 1 다음