처리율 제한 장치(ratelimter) 구현 방법 5가지

🎯 1. 토큰 버킷 (Token Bucket) 토큰 버킷 방식은 일정한 비율로 토큰이 버킷에 채워집니다. 요청이 있을 때마다 토큰이 사용되며, 토큰이 없으면 요청이 거부됩니다. 👍 장점: 유연한 처리율 제한이 가능하며, 트래픽의 버스트를 어느 정도 허용할 수 있습니다. 👎 단점: 초기 구성이 복잡할 수 있습니다. 실제 요청률이 토큰 생성률보다 훨씬 낮을 경우 토큰이 낭비될 수 있습니다. 🎯 2. 누출 버킷 (Leaky Bucket) 데이터나 요청이 버킷에 차곡차곡 쌓이고, 일정한 속도로 "누출"됩니다. 버킷이 가득 차면 새로운 요청은 거부됩니다. 👍 장점: 일정한 요청률을 유지할 수 있습니다. 구현이 단순합니다. 👎 단점: 버스트 트래픽을 잘 처리하지 못합니다. 🎯 3. 고정 윈도 카운터 (Fixed Window Counter) 시간을 고정된 윈도우로 나누고, 각 윈도우마다 요청 수를 계산합니다. 윈도우 내에서 제한을 초과하면 요청을 거부합니다. 👍 장점: 구현이 간단합니다. 시간 윈도우가 확실하게 구분됩니다. 👎 단점: 윈도우 경계에서의 요청 버스트는 시스템에 부담을 줄 수 있습니다. 🎯 4. 이동 윈도 로그 (Sliding Window Log) 최근 N 초 동안의 모든 요청을 로그로 기록합니다. 로그의 요청 수가 제한을 초과하면 요청을 거부합니다. 👍 장점: 유연한 처리율 제한이 가능합니다. 버스트 트래픽 처리 능력이 좋습니다. 👎 단점: 메모리 사용량이 높을 수 있습니다. 로그 관리가 필요합니다. 🎯 5. 이동 윈도 카운터 (Sliding Window Counter) 현재 시간으로부터 과거 N 초 동안의 요청 수를 카운트합니다. 요청이 제한을 초과하면 거부됩니다. 👍 장점: 이동 윈도 로그보다 메모리 효율이 좋습니다. 버스트 트래픽 처리 능력이 좋습니다. 👎 단점: 구현이 다소 복잡합니다. 정확한 타이밍을 위한 추가 로직이 필요합니다. 같이보면 좋은 글 처리율 제한 장치는 언제 사용할까? https://careerly.co.kr/comments/90829

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 18일 오전 5:37

댓글 0

    함께 읽은 게시물

    이번 구글 I/O, 구글 여러분들 행사전에 입이 근질근질하셨겠네요. ㅎㅎ


    내용은 다들 소개하셨으니 한줄평하자면, 구글이 처음으로 OpenAI에 비해 반발짝정도 앞서나간 이벤트인 것 같습니다.


    더불어 출시한 모델과 서비스들을 보니.. 역시 AI는 돈빨이며 구글이 돈빨을 제대로 세웠.. 쿨럭..


    좋은 개발자가 되고 싶어서 기술을 열심히 익혔어요.

    새로운 프레임워크가 나오면 바로 써보고,

    더 효율적인 아키텍처를 고민하며 코드를 다듬기도 했어요.


    ... 더 보기


    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    www.youtube.com

    달레의 코딩 테스트

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?"


    ... 더 보기

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    55check.com

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    오늘은 투자 완료일이자 아미고 런칭 100일. 별 생각 없었는데, VC 파트너님이 축하한다며 파티 안하냐고 전화주셨길래 편의점에서 맥주 한 캔과 꼬깔콘으로 조촐하게 파티 했습니다. 이제부터가 진짜 시작이겠죠. 잘 부탁드립니다.

    ... 더 보기

    조회 1,770