HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
✍🏻
Learnary (learn - diary)
/
SpringBoot RDB Replication 적용하기

SpringBoot RDB Replication 적용하기

progress
Done
Tags
Spring
buildUp스프링부트에 Replication 적용하기1. yaml 파일 설정2. DataSourceConfig 생성3. AbstractRoutingDataSource 만들기4. DataSourceConfig에 LazyConnectionDataSourceProxy추가LazyConnectionDataSourceProxy 사용하는 이유

buildUp

MYSQL Replication 이해하기
docker로 mysql replication 환경 구성하기
 
 

스프링부트에 Replication 적용하기

1. yaml 파일 설정

notion image

2. DataSourceConfig 생성

  • 각 노드들을 이름별로 설정해준다.
notion image
 

3. AbstractRoutingDataSource 만들기

AbstractRoutingDataSource는 Key 기반으로 등록된 DataSource 중 하나를 호출하게 해 주는 객체이다.
notion image
현재 조회 키(마스터 또는 슬레이브)를 반환하기 위해 추상 메소드를 구현했다.
이를 통해 readOnly속성을 구별해 readonly면 슬레이브를 반환한다.
즉, determineCurrentLookupKey()는 Logic에 따라 내부 구현이 바뀌게 되는데, URL Pattern에 따른 분기, Enum을 이용하여 넘어오는 Enum 값에 따른 DataSource 선택, Session에서 Key 값을 통한 분기 등이 가능하다.
 

4. DataSourceConfig에 LazyConnectionDataSourceProxy추가

notion image
 

LazyConnectionDataSourceProxy 사용하는 이유

Replication AbstractRoutingDataSource 문제