Skip to content

[Step3]: DB 병목 해소를 위해 Redis 분산 락을 도입하고, 트래픽 제어 전략를 구현하여 성능을 개선한다 #9

@woong2e

Description

@woong2e

✅ PR

#10

📝 Description

배경 (Context)

  • 현재 Step 2(DB 비관적 락 + Semaphore/HikariCP 튜닝)를 통해 데이터 정합성은 확보했으나, Disk I/O 및 Row Lock 대기로 인한 TPS 한계가 명확함.
  • db.t4g.micro 환경에서 Connection 고갈은 막았으나, 대용량 트래픽 처리(High Throughput)를 위해서는 In-Memory 기반의 제어가 필수적임.

목표 (Goal)

  • Redis 도입: 재고(Coupon Count) 관리 주체를 DB(MySQL)에서 Redis로 이관하여 조회 속도 개선.
  • 분산 락 적용: 다중 서버 환경(Scale-out)에서도 정합성을 보장하는 Redisson Distributed Lock 구현.
  • 최적화 (Lua Script): 락 획득/해제 과정의 네트워크 비용(RTT)을 제거하기 위해 Lua Script를 활용한 원자적 연산(Atomic Operation) 방식과 성능 비교 검증.

📝 Todo

  • 인프라 및 환경 설정: Docker Compose Redis 구성 및 Spring Boot 설정 (RedissonClient, RedisTemplate)
  • 트래픽 제어 전략 구현
  • 동시성 제어 및 로직 변경 (Concurrency Control)
  • 검증 및 테스트

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions