인프런 커뮤니티 질문&답변

gang ho lee님의 프로필 이미지

작성한 질문수

따라하며 배우는 MySQL on Docker

Orchestrator Container 실행하기

CRUD와 Replication 질문 드립니다.

작성

·

740

0

안녕하세요! 질문 드리기에 앞서 강의 정말 잘 보고 있습니다.

소중한 강의 너무 감사합니다.

강의 수강 중에 CRUD와 Replication 사이에 대해서 궁금증이 생겨 질문 남깁니다.

현재 강의내용을 보면 Docker 환경에서 여러개의 MySQL을 띄우고, 각각 관계(Mater-Slave)를 설정하는 것으로 이해했습니다.

그렇다면, 실제 DB에 저장되는 Create, Update, Delete, Read는 서버단에서 구현해서 데이터를 다루면 되는걸까요?

 

Question 1. Spring-MySQL 환경에서 Create, Update는 MasterDB 설정(port로)으로 저장하고, Read는 SlaveDB에서 불러오는 방식으로 Spring에서 구현하면 되는 건지 궁금합니다.

Question 2. 만약 CRUD마다 접근하는 DB가 다르다면, 데이터 동기화는 따로 mysql.conf 설정과 같은 곳에서 지정해야하는 걸까요?

 

Question 3. 현재 강의에서 Replication을 설정한 것으로 Master-Slave의 데이터는 동기화되나요?

조금 부족한 질문이지만 만약 답변 해주신다면 큰 도움이 될 것 같습니다! 긴 질문 읽어주셔서 감사합니다.

답변 1

1

김영헌님의 프로필 이미지
김영헌
지식공유자

안녕하세요.

질문1.

섹션3의 Proxy layer구성편을 보시면 답변이 될 수 있을 거 같은데요.

Master, Replica(Slave) 접속을 위해 각각 별도의 커넥션을 사용하지 않고 ProxySQL이라는 솔루션을 이용해서 커넥션 핸들링을 할 수 있습니다.

ProxySQL에서 쿼리 룰을 등록해서 원하는 형태대로(쓰기는 Master로, 읽기는 Replica로) 분기할 수 있으며 Master 장애로 Master가 변경됐을때도 자동으로 커넥션을 변경된 Master로 가도록 할 수 있습니다.

질문2.

데이터 동기화는 MySQL의 Master-Slave Replication 설정으로 자동으로 동기화 됩니다.

질문3.

강의에서 설정한 Replicaion으로 데이터는 동기화 됩니다.

 

감사합니다.

gang ho lee님의 프로필 이미지
gang ho lee
질문자

답변 감사합니다! 아직 ProxySQL까지 도달하지 못했는데 쭉 들어보겠습니다!