웹 계층이 다중화되어도 데이터 계층에 db서버가 하나뿐이면
부하가 집중될거고 트래픽이 많아져서 DB가 터지면 SPoF (Single Point of Failure)가 될수있당
그래서 데이터베이스도 다중화 할 필요성이 있다.
이 책에서는 master-slave 아키텍처를 설명한다.
1. master 서버는 쓰기연산 (create, update, delete) 트래픽을 받는다.
그리고 받은 연산을 slave 노드 (replica)에 전달한다.
2. slave 서버는 읽기연산 (read) 트래픽을 받는다.
대부분 읽기가 쓰기보다 더 많은 애플리케이션에서 master-slave 아키텍처로 DB 부하를 분산하는게 효과적이다.
master가 다운되면
1. slave 노드들중 하나가 master로 승격하거나
2. slave가 하나인경우 모든 트래픽을 다 받도록 하고 어서 새 db 서버를 추가한다.
쓰기연산이 읽기보다 더 많으면 어떻게 하지?라고 생각해봤는데 multi-master 전략도 있다는걸 알게됐다.
https://arpitbhayani.me/blogs/multi-master-replication/
위 글을 아주 재밌게 읽었다
'책 읽어보고 재잘재잘 > 대규모 시스템 설계 기초1' 카테고리의 다른 글
시스템 면접에서 해야 할 것과 하지 말아야 할 것들 (0) | 2024.01.09 |
---|---|
데이터베이스의 규모 확장 (샤딩) (0) | 2024.01.08 |
시스템 규모 확장을 위한 기법들 요약 (0) | 2024.01.08 |
수직확장 vs 수평확장 (0) | 2024.01.07 |
NoSQL을 고려해야 될 상황 (0) | 2024.01.07 |