분산 데이터베이스 전략 및 테스트 결과 정리 : Velog
분산 데이터베이스 전략 중 Replication에 대해 MySQL의 GTID (Global Transactional Identifier) 기반 Replication 실습 프로젝트 입니다.
- MySQL GTID 기반 데이터 복제 전략
- 쓰기 작업을 답당하는 Master DB와 읽기 작업을 담당하는 Slave DB 전략을 통한 쓰기/읽기 분리 및 부하 분산
-
다중 DB 사용을 위한 DataSource 수동 설정 : DataSourceConfig.java
-
@Traansactional옵션을 이용한 읽기/쓰기 데이터베이스 Routing : DynamicRoutingDataSource.java
| 구분 | 기술 | 설명 |
|---|---|---|
| Java | Java 17 | Spring에서 사용할 언어 |
| Framework | Spring Boot 3.5.5 | REST API 및 DB 연동 |
| Database | MySQL 8.4 | Master–Slave 복제 구성 |
| ORM | Spring Data JPA | Entity 매핑 및 트랜잭션 관리 |
| Infra | Docker, Docker Compose | 컨테이너 기반 환경 구성 |
| Monitoring | Prometheus, Grafana | DB 및 Spring 트래픽 모니터링 |
| Testing | k6 | 부하 테스트 |
- k6를 이용한 DB 부하 테스트 스크립트를 통해 Master/Slave 부하 테스트
- Prometheus / Grafana를 통한 부하 측정 및 모니터링
- Warm-up 2분
- RPS 1000r/s 5분
- RPS 1300r/s 10분
- Cooldown : 3분
- 읽기 80% 쓰기 20%
- 응답시간
- 실패율
- 지연 시간
# 1. 프로젝트 클론
git clone https://github.com/JayongLee/backend-distributed-database.git
cd backend-distributed-database
# 2. Docker Compose 실행
docker-compose up --build
# 3. 테스트 결과 확인 및 모니터링
http://localhost:9000