728x90
반응형
SMALL
4장.처리율제한장치설계
사례
- 사용자는 초당 2회 이상 새 글을 올릴 수 없다.
- 같은 IP 주소로 하루에 10개 이상의 계정을 생성할 수 없다.
- 같은 디바이스로 똑같은 글에 추천을 할 수 없다
처리율 제한 장치를 적용한다면
- DoS에 의한 자원 고갈 방지
- 서버를 많이 두지 않아도 되며, 우선순위가 높은 API에 자원 할당이 더 자유로워 질수 있으므로 비용절감
- 서버 과부화 방지
처리율 제한 장치의 위치선정
처리율 제한 알고리즘
- 토큰 버킷
장점
- 구현이 쉽다
- 메모리 사용 측면에서 효율적
- 짧은 시간에 집중되는 트래픽 처리 가능, 버킷에 남아있는 토큰이 있기만 하면 요청은 시스템에 전달된다.
단점
- 버킷 크기와 토큰 공급률을 적절히 튜닝하는 것이 엄청 까다로울것이다.
누출 버킷
고정 윈도 카운터
이동 윈도 로그
이동 윈도 카운
카프카의 로그를 유지?
001 기준 40초 4천개
1초 150개 10초 1500개 1분 1만개 10분 10만개 1시간 20만
CWP 카프렉 통신전자과 통하네
5장.안정해설
해시 키 재배치 문제
서버들에 부하를 균등하게 나누는 보편적인 방법
ServerIndex = hash(key) % N(서버개수)
- 이 방법은 서버 풀 크기가 고정되어 있고, 데이터 분포가 균동할 때는 잘 동작한다.
- 서버가 추가되거나 기존 서버가 삭제되는 경우 N의 개수가 변경되어 데이터의 분배가 한쪽으로만 치우질수 있는 문제가 발생한다.
안정 해시
정의
- 해시 키 재배치 문제를 효과적으로 해결할 수 있는 기술.
- 안정 해시는 해시 테이블의 크기가 조정될 때 평균적으로 오직 K(키의개수)/N(슬롯개수)개의 키만 재배치하는 해시 기술
- 전통적 해시 테이블은 슬롯의 수가 변경되면 대부분의 키를 재배치
6장.키값 저장소 설계
단일 서버 키-값 저장소
- 가장쉬움
- 가장 직관적인 방법은 키-값 쌍 전부를
메모리에 해시 테이블로 저장
하는것 빠른속도를 보장
하지만메모리의 제한
때문에 모든 데이터를 메모리에 저장하는것이 불가능 할 수도 있는 단점 존재- 개선점은
데이터의 압축
,자주 사용되는 데이터만 메모리
에나머지는 디스크
에 저장
### 분산 키-값 저장소 - 분산 해시 테이블 이라고도 불린다.
- 분산 시스템 설계시
CAP 정리
를 필수로 이해해야 한다.
CAP 정리
데이터 일관성(Consistency), 가용성(Availability), 파티션 감내(Partition tolerance) 3가지의 요구사항을 동시에 만족하는 분산 시스템을 설계하는것은 불가능 하다는 정리
- 데이터 일관성(C)
- 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속하든 관계없이
언제나 같은 데이터를 봐야한다
.
- 분산 시스템에 접속하는 모든 클라이언트는 어떤 노드에 접속하든 관계없이
- 가용성(A)
- 분산 시스템에 접속하는 클라이언트는 일부 노트에 장애가 발생해도 `항상 응답을 받을 수 있어야 한다.
- 파티션 감내(P)
- 파티션은 두 노드 사이에 통신이 장애가 발생했음을 의미
- 파티션 감내는
네트워크에 파티션이 생기더라도 시스템은 계속 동작하여야 한다는 것을 의미
CAP정리는 CAP에서 어떤 2가지를 충족하면 나머지 하나는 반드시 희생되어야 한다는 것을 의미
- CP시스템, AP시스템, CA시스템
통상 네트워크 장애는 피할수 없으므로 분산 시스템은 반드시 파티션 문제를 감내할 수 있도록 설계 되어야 한다.
때문에 실세계에 CA 시스템은 존재하지 않음- 은행권 같은 경우 일관성을 양보하지 않기 때문에 상황이 가용성을 포기하고 해결될때까지 오류를 반환해야한다.
시스템 컴포넌트
키-값 저장소 구현에 사용될 핵심 컴포넌트들
- 데이터 파티션
- 데이터 다중화
- 일관성
- 일관성 불일치 해소
- 장애 처리
- 시스템 아키텍처 다이어그램
- 쓰기 경로
- 읽기 경로
728x90
반응형
LIST
'대규모 시스템 설계' 카테고리의 다른 글
7장. 분산 시스템을 위한 유일 ID 생성기 설계 (3) | 2023.11.26 |
---|---|
5장. 안정해시 (1) | 2023.11.19 |
4장. 처리율 제한장치 설계 (0) | 2023.11.19 |