읽을때 마다 새로운 지식을 알게되는 책이지만, 다음 챕터로 넘어 갈수록 너무 어려워져서 손이가지 않는 책으로 최대한 많이 이해하고 완독을 목표로 정리를 하기위해서 글을 작성하게 되었다.
처음에는 2부 부터 읽다가 왜 1을 읽지 않느냐는 질문을 받고 1부를 읽게되었고 1부 부터 읽는게 필수라고 할정도로 난이도 차이가 있다.
잘근잘근 씹어먹듯, 많은 지식을 남길 수 있도록 열심히 정리해보자!
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 예스24
-> 클라이언트 or 서비스가 보내는 트래픽의 처리율 (rate)를 제어하기 위한 장치
API의 요청횟수가 제한장치에 정의된 임계치를 넘어서면 추가로 도달한, 모든 호출은 처리가 중단된다.
클라이언트 측
서버 / 미들웨어
서버 / 미들웨어는 두 방법에서의 정답은 존재하지 않는다. 우선 순위와 목표에 따라 다르게 선택하면 된다.
토큰 생성 시간(토큰 공급률) 과 버킷 크기에 대한 인자를 사용하는 방식이다.
해당 알고리즘에 대한 자세한 설명은 다음과 같다.
그림으로 설명하면 다음과 같다.
버킷 컨테이너를 두는 기준을 어디에 둘 것 인가하는 사용 서비스에 따라 결정하면 된다.
장점
-> 토큰 버킷을 기반으로 서비스 안에 시스템을 구현했다. 다만 서비스 pod 각각 버킷을 갖고있어 해당하는 부분을 튜닝하기 어려운 부분이 있었다.
해당 알고리즘은 토큰 버킷 알고리즘과 비슷하나 요청 처리율이 고정되어 있다는 것이 달랐다.
FIFO의 큐와 버킷 크기 - 큐 사이즈 / 처리율(outflow rate) 의 인자 값으로 구성되이 있다.
정리하면 다음과 같다.
1. 요청이 도착하면 큐가 가득차있는지 확인하고 자리가 있다면 큐에 요청을 추가
2. 큐가 가득차 있으면 새 요청을 버림
3. 지정된 시간마다 큐 요청을 꺼내 버린다.
장점
다음에 계속..