728x90
기본적인 서버 설계의 모든 것이 들어가 있는 그림입니다.
로드밸런서
부하 분산 집합에 속한 웹 서버들에게 트래픽 부하를 고르게 분산하는 역할입니다.
일단 ip로 접속하면 서버로 바로 가는게 아니라 로드밸런서로 갑니다.
- 서버1 다운 시 서버 2로 전송 가능
- 트래픽이 증가하면 새로운 서버를 만들고 자동으로 트래픽 분산
DB의 다중화
db는 하나만 사용하는게 아닙니다.
데이터 원본은(master)에 부(slave) db에는 사본을 저장하는 방식입니다
두 개의 역할은 쓰기 연산과 읽기 연산으로 구분됩니다.
쓰기 연산보다 읽기 연산이 훨씬 많이 요청됩니다
그래서 복제 db에 읽기 연산을 하고 주 데이터 서버에 쓰기를 하게 됩니다
메세지 큐
만약 연산이 몰린다면 서버가 과부하가 걸릴 수가 있습니다
그럴 때 메세지 큐를 통해서 연산의 속도를 늦추며 안정성을 높힐 수 있습니다
메세지 큐란 무손실을 보장하는 비동기 통신 컴포넌트입니다
예를 들어 사진 수정과 같이 오래 걸리는 작업의 경우 메세지 큐에 넣어두고 순차적으로 진행 할 수 있습니다
샤딩
db에 데이터가 많이 쌓이면 수평적 확장을 합니다
이때 샤딩이라는 기술이 들어 갈 수 있습니다
db에 데이터를 어디에 넣을 지 정하는 기술로 보통 %db갯수를 통해 데이터를 넣게 됩니다
이럴 때 발생 할 수 있는 문제점이
- 데이터 재 샤딩
- 유명인사 문제(핫스팟)
- 조인과 비정규화
위와 같은 문제가 발생 할 수 있습니다.
이러한 문제점에 대해서는 추후에 다뤄보도록 하겠습니다.
'시스템 설계' 카테고리의 다른 글
카카오페이: 지연이체 서비스 교체기 (0) | 2024.11.08 |
---|---|
처리율 제한 장치 상세 설계 (0) | 2024.07.04 |
처리율 제한 장치 설계 알고리즘 (0) | 2024.07.02 |
이걸 모르면 훌륭한 백 엔드 개발자라고 할 수 없다 (0) | 2024.06.19 |