서버/DB (데이터 베이스)

DB (Master & Slave 개념 및 구조)

피노키오이 2021. 7. 26. 16:47
반응형

개요

 

소프트웨어를 개발하는데 가장중요한것은 DB를 설계하는 것이라고 생각합니다.

많은 소스를 보면서 DB구조가 Master & Slave로 되어있는것 을 볼 수 있었는데, 자세한 개념을 알아 보도록 하겠습니다.

 


Master & Slave 개념 

 

MySQL Replication(복제)은 말 그대로 DB인 데이터를 갖다가 물리적으로 복사해 다른곳에 넣어두는 기술을 의미합니다.

 

 

복제 매커니즘

- Master DB에서 DATA변경이 일어나면(1), 이를 Master DB에 반영합니다(2).

- 변경이력을 Binary Log로 저장합니다(3).

- 관련 이벤트를 Slave DB들에게 넘깁니다(4).

- Slave IO Thread에서 이벤트를 캐치하면(5) Binary Log를 Slave DB 각각의 Relay Log에 저장합니다(6).

- Slave SQL Thread에서 Relay Log를 읽어(7) Slave DB를 업데이트합니다(8).

- 읽기 처리를 할 때는 Slave DB를 사용합니다.

 

 

 


Master & Slave 구조

 

일반적으로 DB에 대한 트래픽 분산을 위해서 Mysql Replication을 통해서 트래픽 집중 문제를 해결할 수 있습니다.

 

Master에게는 데이터 동시성이 아주 높게 요구되는 트랜잭션을 담당하고, Slave에게는 읽기만 데이터 동시성이 꼭 보장될 필요는 없는 경우에 읽기 전용으로 데이터를 가져오게 됩니다.

 

일반적으로 Front에서 데이터를 읽어들일 때, 꼭 데이터 일관성이 필요한 경우와 아닌 경우에 대한 API가 나누어지게 됩니다.

그런 경우에 읽기전용으로 트랜잭션을 사용하여 디비에 대한 트래픽을 분살할 수 있습니다.

 


 

반응형