Skip to content

master - slave 구조 #6

Description

@flslg85

master - slave 데이터베이스 구성

  • master
    • MMM(Multi - Master Replication Manager) 구조로 구성함
    • vip, dns 선택할수 있으며 vip 를 사용하고 있음
    • 만약 데이터센터 다중화로 구성해야 한다면 vip -> dns 로 변경해야 함
  • slave
    • 여러개의 slave 디비로 구성하고, slave 디비 앞에 l4 를 두어 트래픽을 분산시킴
스크린샷 2024-05-08 오전 8 52 27

master - slave 단점

  • 대량의 데이터를 추가, 업데이트, 삭제할때 복제 지연 이슈가 발생할수 있음
    • master - slave 동기화에 binlog 를 사용하게 되는데 이 로그처리가 밀리면서 복제 지연이 발생함
    • 수백만개의 테이블에 아무 생각없이 delete all 해버리면 바로 복제지연이 생김
    • 복제 지연이 골치아픈 이유가 데이터 싱크 맞을때까지 아무것도 할수 있는게 없으며(동기화 될때까지 손놓고 있을수밖에 없음) 몇시간 동안 지속되기도 함
  • 코드 구현 난이도가 높아짐
    • 책의 내용처럼 쓰기는 master, 읽기는 slave 로 마냥 단순하지 않음
    • 데이터를 읽고 쓰기해야할 경우, master 에서 읽고 master 에 쓰기를 해야함
      • slave 에서 읽고 master 에 쓰면 데이터베이스 복제 지연 때문에 데이터 저장이 의도와 다르게 저장됨
    • spring 에서는 LazyConnectionDataSourceProxy, AbstractRoutingDataSource 를 사용해서 transactional 어노테이션에 read only 인지 아닌지에 따라 master 로 접근할수 있도록 구성할수 있음
    • 다른 언어 프레임워크에서는 처리가 가능한지 또한 어떻게 처리하는지 궁금함

참고

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions