DB - Master & Slave 구조

코공의 개발 기록·2024년 9월 30일

개념

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를 사용한다

구조

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

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

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

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

profile
개발자를 꿈꾸며

0개의 댓글