Closed ghlnh closed 4 months ago
토큰 버킷 알고리즘 설정된 처리율을 초과하는 요청은 효과적으로 제한 요청은 토큰이 있을 때만 처리되며, 토큰은 일정 시간 간격으로 생성 토큰의 생성과 소비가 일정하여 예측 가능한 트래픽 제어가 가능
멤캐시드 데이터 저장소 고속 캐싱 서비스로 메모리에 데이터를 저장하여 빠른 액세스가 가능 대규모 분산 시스템에 적합하며, 여러 서버 간에 공유 가능
이동 윈도 카운터 알고리즘 최근 시간 동안의 요청 수를 계산하여 처리율을 제한→ 시간 윈도 내에서의 요청 수를 통해 유연하게 제어 높은 변동성의 트래픽에 효과적으로 대응가능
레디스 데이터 저장소 고성능 키-값 저장 데이터베이스로, 복잡한 데이터 구조를 메모리 내에 저장 레디스의 내장 기능을 이용해 원자성을 보장하고, 실패에 대한 복원력이 높음
정확한 제한:
메모리 사용:
레디스는 보다 복잡한 데이터 처리와 분산 처리에서 강점
⇒메모리 사용 최소화가 중요하다면 멤캐시드(A)가 유리
분산 처리:
멤캐시드(A)도 분산 캐시로 사용 가능하지만, 레디스만큼 강력한 분산 기능을 제공X
⇒레디스(B)가 분산 처리 면에서 더 유리
응답 시간과 결함 감내성:
레디스는 멤캐시드에 비해 복잡한 연산이 가능하며, 내장된 내결함성 기능으로 서비스의 중단 없이 처리율 제한을 지속 가능
⇒레디스(B)가 유리
유연성과 대규모 요청 처리:
⇒레디스(B)가 대규모 요청 처리 면에서 더 유리
토큰 버킷 알고리즘을 사용하는 처리율 제한 장치 A는 정확한 제한과 메모리 사용량 면에서 우수하지만, 분산 처리와 대규모 요청 처리 면에서는 이동윈도 카운터 알고리즘을 사용하는 처리율 제한 장치 B가 더 적합해 보임. 따라서 주어진 요구사항을 고려할 때, 레디스 데이터 저장소를 사용하는 이동윈도 카운터 알고리즘 기반의 처리율 제한 장치 B가 더 적합하다고 판단
[Cache] Redis vs. Memcached https://chrisjune-13837.medium.com/redis-vs-memcached-10e796ddd717
책에 나온 설계 범위 및 요구사항
토큰 버킷 알고리즘&멤캐시드 VS 이동 윈도 카운터 알고리즘&레디스