목차
속도 제한은 왜 있나요?
속도 제한 정책 속도 제한은 다음 매개변수에 적용될 수 있습니다.
1을 소개하겠습니다. Leaky Bucket 알고리즘의 아이디어는 간단하고 직관적인 알고리즘으로 일정한 고정된 속도로 물방울이 흘러나오는 고정된 용량의 Leaky Bucket입니다. 양동이가 비어 있으면 물 한 방울도 흐를 필요가 없습니다. 물은 어떤 방식으로든 새는 물통으로 흘러 들어갈 수 있습니다. 유입되는 물방울이 물통의 용량을 초과하면 유입되는 물방울은 넘치게 되며(폐기됨), 새는 물통의 용량은 그대로 유지됩니다.
2. 토큰 버킷 알고리즘
4. 슬라이딩 윈도우 알고리즘
요약
기술 주변기기 일체 포함 일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

Nov 15, 2023 am 11:22 AM
누출 버킷 알고리즘 전류 제한 알고리즘 토큰 버킷 알고리즘

일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

전자상거래 프로모션 등 동시 접속률이 높은 상황에서는 트래픽이 계속해서 쏟아져 나오고, 서비스 간 상호 통화 빈도가 급격하게 늘어나 시스템 부하가 너무 높아지게 됩니다. 이때 시스템의 안정성이 너무 높아집니다. 시스템이 의존하는 서비스 시스템에 미치는 영향은 매우 크고, 네트워크 연결 중단, 서비스 다운타임 등 산사태를 일으키는 불확실한 요인이 많이 있습니다. 일반적으로 마이크로서비스 내결함성 구성 요소는 마이크로서비스 시스템을 효과적으로 보호할 수 있는 전류 제한, 격리, 성능 저하, 회로 차단기 및 기타 수단을 제공합니다. 이 기사에서는 주로 전류 제한에 대해 설명합니다.

전류 제한은 작동 주파수가 정의된 제한을 초과하지 않도록 최대 유량을 제한하는 것을 의미합니다. 시스템이 제공할 수 있는 최대 동시성은 제한되어 있고, 동시에 요청이 너무 많아서 반짝 세일, 대규모 프로모션 등 조절이 필요합니다. 즉각적으로 많은 요청이 쇄도하면 서버가 이를 처리할 수 없습니다. 그래서 스로틀링을 해야 합니다. 속도 제한은 특정 기간 동안 API에 도달할 수 있는 요청 수를 제한하여 우발적이거나 악의적인 남용으로부터 서비스를 보호합니다. 속도 제한이 없으면 모든 사용자가 서버에 요청을 쏟아부어 다른 사용자가 굶어 죽는 상황을 초래할 수 있습니다.

속도 제한은 왜 있나요?

  • Prevent Resource Starvation: 속도 제한의 가장 일반적인 이유는 리소스 부족을 방지하여 API 기반 서비스의 가용성을 높이는 것입니다. 속도 제한을 적용하면 로드 기반 서비스 거부(DoS) 공격을 방지할 수 있습니다. 한 사용자가 수많은 요청으로 API를 공격하더라도 다른 사용자는 굶어 죽지 않습니다.
  • 보안: 속도 제한은 로그인, 프로모션 코드 등과 같은 보안 중심 기능에 대한 무차별 대입 공격을 방지합니다. 이러한 기능에 대한 요청 수는 사용자 수준에서 제한되므로 이러한 시나리오에서는 무차별 대입 알고리즘이 작동하지 않습니다.
  • 운영 비용 방지: 종량제 모델에서 리소스를 자동으로 확장하는 경우 속도 제한은 리소스 확장에 가상 상한선을 설정하여 운영 비용을 제어하는 ​​데 도움이 됩니다. 속도 제한이 없으면 리소스가 불균형적으로 확장되어 요금이 기하급수적으로 늘어날 수 있습니다.

속도 제한 정책 속도 제한은 다음 매개변수에 적용될 수 있습니다.

  • Users: 특정 기간 동안 사용자에게 허용되는 요청 수를 제한합니다. 사용자 기반 속도 제한은 가장 일반적이고 직관적인 속도 제한 형식 중 하나입니다.
  • Concurrency: 이는 특정 기간 동안 사용자가 허용할 수 있는 병렬 세션 수를 제한합니다. 병렬 연결 수를 제한하면 DDOS 공격을 완화하는 데에도 도움이 됩니다.
  • Location/ID: 이는 위치 기반 또는 인구 통계 중심 캠페인을 실행하는 데 도움이 됩니다. 대상 인구 통계에서 나오지 않는 요청은 제한되어 대상 지역의 가용성을 높일 수 있습니다
  • Servers: 서버 기반 속도 제한은 틈새 전략입니다. 이는 일반적으로 특정 서버가 대부분의 요청을 요구할 때 사용됩니다. 즉, 서버가 특정 기능과 강력하게 결합되어 있습니다

다음으로 4가지 일반적인 전류 제한 알고리즘

1을 소개하겠습니다. Leaky Bucket 알고리즘의 아이디어는 간단하고 직관적인 알고리즘으로 일정한 고정된 속도로 물방울이 흘러나오는 고정된 용량의 Leaky Bucket입니다. 양동이가 비어 있으면 물 한 방울도 흐를 필요가 없습니다. 물은 어떤 방식으로든 새는 물통으로 흘러 들어갈 수 있습니다. 유입되는 물방울이 물통의 용량을 초과하면 유입되는 물방울은 넘치게 되며(폐기됨), 새는 물통의 용량은 그대로 유지됩니다.

이 알고리즘의 장점은 급증하는 요청을 원활하게 하고 이를 일정한 속도로 처리한다는 것입니다. 또한 로드 밸런서에서 구현하기 쉽고 모든 사용자에게 메모리 효율적입니다. 요청 수에 관계없이 서버에 대한 일정하고 거의 균일한 트래픽을 유지합니다.

단점은 요청이 폭증하면 버킷이 가득 차서 새로운 요청이 부족해질 수 있다는 것입니다. 또한 요청이 지정된 시간 내에 완료된다는 보장도 없습니다.

장점:

일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

교통이 원활합니다.

누수 버킷 알고리즘은 고정된 속도로 요청을 처리하기 때문에 트래픽을 효과적으로 원활하게 하고 형성하며 트래픽 버스트와 변동을 방지할 수 있습니다(메시지 대기열의 피크 감소 및 밸리 채우기 효과와 유사).
  • 과부하를 방지하세요. 들어오는 요청이 버킷 용량을 초과하는 경우 시스템 과부하를 방지하기 위해 요청을 직접 삭제할 수 있습니다.
  • 단점:
    • 폭발 트래픽을 처리할 수 없습니다: 누출 버킷의 내보내기 속도가 고정되어 있으므로 폭주 트래픽을 처리할 수 없습니다. 예를 들어 트래픽이 적은 경우에도 요청을 더 빠르게 처리할 수 없습니다.
    • 데이터 손실 가능성: 유입 트래픽이 너무 크고 버킷 용량을 초과하는 경우 일부 요청을 삭제해야 합니다. 이는 누락된 요청을 용인할 수 없는 일부 시나리오에서 문제가 될 수 있습니다.

    2. 토큰 버킷 알고리즘

    토큰 버킷 알고리즘: 한도가 2r/s라고 가정하면 토큰은 500밀리초의 고정 속도로 버킷에 추가됩니다. 버킷에는 최대 b개의 토큰을 저장할 수 있습니다. 버킷이 가득 차면 새로 추가된 토큰은 폐기되거나 거부됩니다. n바이트 크기의 패킷이 도착하면 n개의 토큰이 버킷에서 제거되고 패킷이 네트워크로 전송됩니다. 버킷에 n개 미만의 토큰이 있는 경우 토큰은 삭제되지 않으며 패킷 흐름이 제한됩니다(폐기되거나 대기하도록 버퍼링됨). 토큰 버킷 전류 제한 원리는 그림과 같습니다.


    일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

    현재 제한 서버의 토큰 버킷은 실제 서비스 성능 및 기간에 따라 토큰 생성 속도와 버킷 용량을 조정할 수 있습니다. 비율을 높여야 하는 경우 버킷에 넣는 토큰의 비율은 요청에 따라 늘릴 수 있습니다.

    토큰이 생성되는 비율은 일정하지만 토큰을 얻기 위해 요청하는 비율은 제한되지 않습니다. 즉, 순간적인 대규모 트래픽에 직면했을 때 알고리즘은 짧은 시간 내에 많은 수의 토큰을 얻을 수 있으며 토큰을 얻는 과정에서 많은 리소스를 소비하지 않습니다

    각 새로운 요청이 서버에 도착할 때 , 실행됩니다. 두 가지 작업:

      Get Tokens
    • : 이 사용자의 현재 토큰 수를 가져옵니다. 정의된 제한보다 크면 요청이 삭제됩니다.
    • 토큰 업데이트
    • : 획득한 토큰이 기간 d 제한보다 작으면 요청을 수락하고 토큰을 첨부합니다.
    • 알고리즘은 애플리케이션에 대해 사용자당 더 적은 양의 데이터를 저장하므로 메모리 효율적입니다. 여기서 문제는 분산 환경에서 경쟁 조건이 발생할 수 있다는 것입니다. 이는 서로 다른 두 애플리케이션 서버의 두 요청이 동시에 토큰을 가져오려고 할 때 발생합니다.

    장점:

      버스트 트래픽을 처리할 수 있습니다.
    • : 토큰 버킷 알고리즘은 버스트 트래픽을 처리할 수 있습니다. 버킷이 가득 차면 요청을 최대 속도로 처리할 수 있습니다. 이는 급증하는 트래픽을 처리해야 하는 애플리케이션에 유용합니다.
    • 평균 속도 제한
    • : 장기적으로 데이터 전송 속도는 미리 정의된 평균 속도(즉, 토큰이 생성되는 속도)로 제한됩니다.
    • Flexibility
    • : Leaky 버킷 알고리즘에 비해 토큰 버킷 알고리즘은 더 큰 유연성을 제공합니다. 예를 들어, 토큰 생성 속도를 동적으로 조정할 수 있습니다. 단점:

      과부하를 일으킬 수 있음
    • : 토큰이 너무 빨리 생성되면 대량의 트래픽 버스트가 발생하여 네트워크나 서비스에 과부하가 걸릴 수 있습니다.
    • 저장 공간 필요
    • : 토큰 버킷은 토큰을 저장하기 위해 일정량의 저장 공간이 필요하므로 메모리 리소스가 낭비될 수 있습니다.
    • 구현이 약간 복잡합니다
    • : 카운터 알고리즘과 비교하여 토큰 버킷 알고리즘의 구현이 약간 더 복잡합니다. 3. 고정 시간 창 알고리즘
    을 사용하면 고정된 시간 창 내에 특정 수의 요청이 들어갈 수 있습니다. 수량을 초과하면 거부되거나 다음 기간 동안 대기하기 위해 대기열에 추가됩니다. 이 카운터 전류 제한은 시간 간격 내에서 제한하여 구현됩니다. 사용자가 이전 간격이 끝나기 전에 요청을 보내고(제한을 초과하지 않음) 현재 간격이 시작될 때에도 요청을 보내는 경우(또한 제한을 초과하지 않음) 이러한 요청은 해당 요청에 대해 정상입니다. 각각의 간격. 그러나 중요한 기간 동안 요청이 시스템 제한을 초과하면 시스템 과부하가 발생할 수 있습니다

    카운터 알고리즘의 시간 임계점 결함으로 인해 시간 임계점을 중심으로 매우 짧은 시간 내에 공격에 취약합니다. 예를 들어 특정 인터페이스를 분당 최대 100번까지 요청하도록 설정되어 있습니다. 예를 들어 12:00:00~12:00:59 시간에는 데이터 요청이 없는데 갑자기 동시 요청이 있는 경우입니다. 12:00:59-12:01:00 기간 동안 100개의 요청이 있고 다음 계산 주기에 들어가면 카운터가 지워지고 12:01:00-12:01:01 사이에 100개의 요청이 있습니다. 즉, 시간 임계점 부근에서 동시에 임계값의 2배에 달하는 요청이 발생하여 백그라운드 처리 요청의 과부하가 발생하여 시스템 운영 능력이 부족해지고 심지어 시스템이 충돌하는 경우도 발생할 수 있습니다.

    단점:

    • 현재 제한이 충분히 원활하지 않습니다. 예를 들어 현재 제한은 초당 3개이며 첫 번째 밀리초에 3개의 요청이 전송됩니다. 현재 제한에 도달하면 남은 기간 동안의 모든 요청이 거부되어 좋지 않은 경험이 발생합니다.
    • 창 테두리 문제를 처리할 수 없습니다. 특정 시간 창 내에서 흐름 제어가 수행되기 때문에 창 경계 효과가 발생할 수 있습니다. 즉, 시간 창의 경계에서 많은 수의 요청이 통과되도록 허용되어 버스트 트래픽이 발생할 수 있습니다.

    예: 현재 제한은 초당 3개이며, 첫 번째 초의 마지막 밀리초에 3개의 요청이 전송되고, 두 번째 초의 첫 번째 밀리초에 3개의 요청이 전송됩니다. 이 2밀리미터 내에서 6개의 요청이 처리되었지만 현재 제한이 트리거되지 않았습니다. 트래픽이 폭증하면 서버에 과부하가 걸릴 수 있습니다.

    4. 슬라이딩 윈도우 알고리즘

    슬라이딩 윈도우 알고리즘은 고정된 기간을 분할하여 시간에 따라 이동하는 방식으로, 시작 시점이 시간 목록의 두 번째 시점이 되고 종료 시점이 추가됩니다. 특정 시점을 지정하고 이를 지속적으로 반복하면 카운터의 임계점 문제를 교묘하게 피할 수 있습니다.

    슬라이딩 윈도우 알고리즘은 카운터 알고리즘의 시간 임계점 문제를 효과적으로 피할 수 있지만 여전히 시간 세그먼트 개념이 있습니다. 동시에 슬라이딩 윈도우 알고리즘의 계산 작업은 고정 시간 윈도우 알고리즘보다 시간이 더 많이 소요됩니다.

    일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.

    단점: 여전히 전류 한도가 충분히 원활하지 않다는 문제가 있습니다. 예를 들어 현재 제한은 초당 3개이며 첫 번째 밀리초에 3개의 요청이 전송됩니다. 현재 제한에 도달하면 남은 창 시간 내의 모든 요청이 거부되어 결과적으로 성능이 저하됩니다.

    요약

    일반적으로 사용되는 4가지 전류 제한 알고리즘인 고정 창 알고리즘, 슬라이딩 창 알고리즘, 누출 버킷 알고리즘 및 토큰 버킷 알고리즘을 소개했습니다. 각 알고리즘마다 고유한 특성과 적용 가능한 시나리오가 있으므로 아래에서 간략하게 요약하고 비교해 보겠습니다.

    • 토큰 버킷 알고리즘은 트래픽을 원활하게 하고 버스트 트래픽을 처리할 수 있으며 버스트 트래픽을 처리해야 하는 시나리오에 적합합니다.
    • Leaky Bucket Algorithm의 장점은 트래픽 처리가 더 원활하지만 버스트 트래픽에 대처할 수 없으며 원활한 트래픽이 필요한 시나리오에 적합하다는 것입니다.
    • 고정 창 알고리즘 은 구현이 간단하지만 전류 제한이 충분히 매끄럽지 않고 창 경계 문제가 있어 전류 제한을 간단하게 구현해야 하는 시나리오에 적합합니다.
    • 슬라이딩 윈도우 알고리즘은 윈도우 경계 문제를 해결하지만 여전히 전류 제한의 부드러움이 부족하다는 문제가 남아 있어 평균 요청 속도를 제어해야 하는 시나리오에 적합합니다.

위 내용은 일반적으로 사용되는 4가지 전류 제한 알고리즘을 마스터하면 반드시 인터뷰에 합격할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

창의적인 프로젝트를위한 최고의 AI 아트 발전기 (무료 & amp; 유료) 창의적인 프로젝트를위한 최고의 AI 아트 발전기 (무료 & amp; 유료) Apr 02, 2025 pm 06:10 PM

이 기사는 최고의 AI 아트 생성기를 검토하여 자신의 기능, 창의적인 프로젝트에 대한 적합성 및 가치에 대해 논의합니다. Midjourney를 전문가에게 최고의 가치로 강조하고 고품질의 사용자 정의 가능한 예술에 Dall-E 2를 추천합니다.

chatgpt 4 o를 사용할 수 있습니까? chatgpt 4 o를 사용할 수 있습니까? Mar 28, 2025 pm 05:29 PM

ChatGpt 4는 현재 이용 가능하고 널리 사용되며 ChatGpt 3.5와 같은 전임자와 비교하여 상황을 이해하고 일관된 응답을 생성하는 데 상당한 개선을 보여줍니다. 향후 개발에는보다 개인화 된 인터가 포함될 수 있습니다

Meta Llama 3.2- 분석 Vidhya를 시작합니다 Meta Llama 3.2- 분석 Vidhya를 시작합니다 Apr 11, 2025 pm 12:04 PM

메타의 라마 3.2 : 멀티 모달 및 모바일 AI의 도약 Meta는 최근 AI에서 강력한 비전 기능과 모바일 장치에 최적화 된 가벼운 텍스트 모델을 특징으로하는 AI의 상당한 발전 인 Llama 3.2를 공개했습니다. 성공을 바탕으로 o

최고의 AI 챗봇 비교 (Chatgpt, Gemini, Claude & amp; more) 최고의 AI 챗봇 비교 (Chatgpt, Gemini, Claude & amp; more) Apr 02, 2025 pm 06:09 PM

이 기사는 Chatgpt, Gemini 및 Claude와 같은 최고의 AI 챗봇을 비교하여 고유 한 기능, 사용자 정의 옵션 및 자연어 처리 및 신뢰성의 성능에 중점을 둡니다.

컨텐츠 생성을 향상시키기 위해 AI를 쓰는 최고 AI 작문 컨텐츠 생성을 향상시키기 위해 AI를 쓰는 최고 AI 작문 Apr 02, 2025 pm 06:11 PM

이 기사는 Grammarly, Jasper, Copy.ai, Writesonic 및 Rytr와 같은 최고의 AI 작문 조수에 대해 논의하여 콘텐츠 제작을위한 독특한 기능에 중점을 둡니다. Jasper는 SEO 최적화가 뛰어나고 AI 도구는 톤 구성을 유지하는 데 도움이된다고 주장합니다.

Falcon 3에 액세스하는 방법? - 분석 Vidhya Falcon 3에 액세스하는 방법? - 분석 Vidhya Mar 31, 2025 pm 04:41 PM

FALCON 3 : 혁신적인 오픈 소스 대형 언어 모델 유명한 Falcon 시리즈 LLM의 최신 반복 인 Falcon 3은 AI 기술의 상당한 발전을 나타냅니다. 기술 혁신 연구소 (TII)에서 개발 한이 개방

최고의 AI 음성 생성기 선택 : 최고 옵션 검토 최고의 AI 음성 생성기 선택 : 최고 옵션 검토 Apr 02, 2025 pm 06:12 PM

이 기사는 Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson 및 Destript와 같은 최고의 AI 음성 생성기를 검토하여 기능, 음성 품질 및 다양한 요구에 대한 적합성에 중점을 둡니다.

AI 에이전트를 구축하기위한 상위 7 개의 에이전트 래그 시스템 AI 에이전트를 구축하기위한 상위 7 개의 에이전트 래그 시스템 Mar 31, 2025 pm 04:25 PM

2024는 콘텐츠 생성에 LLM을 사용하는 것에서 내부 작업을 이해하는 것으로 바뀌는 것을 목격했습니다. 이 탐사는 AI 요원의 발견으로 이어졌다 - 자율 시스템을 처리하는 과제와 최소한의 인간 개입으로 결정을 내렸다. buildin

See all articles