> 백엔드 개발 > Golang > GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.

GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.

藏色散人
풀어 주다: 2022-12-01 16:12:04
앞으로
6013명이 탐색했습니다.

이번 글에서는 GS Admin의 현재 제한 기능에 대해 소개하겠습니다. GS Admin=gin+scui는 golang에서 개발한 기업용 백엔드인데 어떻게 사용하는지 살펴보겠습니다~ 도움이 되셨으면 좋겠습니다. 모두에게.

GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.

Warehouse

giee: gitee.com/kevn/gsadmin/tree/master
github: github.com/sonhineboy/gsadmin
로그인 후 복사

Instructions

웹사이트의 일일 운영 과정에서 동시성 수가 서비스 임계값에 도달하면 현재 제한을 통해 서비스 가용성을 보장할 수 있습니다. [추천: golang 튜토리얼]

일반적인 현재 제한 방법:

  1. 채널이 가득 차면 서비스를 거부하거나 친절한 메시지를 보내거나 친절한 페이지로 이동하여 기다리세요.

  2. 카운터는 10초 이내에 100개의 요청만 허용하며, 100개를 초과하면 서비스가 거부됩니다. 10초를 초과하면 개수가 0으로 돌아가고 요청이 다시 허용됩니다.

 3. httpserver의 빈도 제한을 사용하므로 직접 구현할 필요가 없습니다.

  4. 토큰 버킷 알고리즘: 토큰을 일정한 속도로 토큰 버킷에 넣습니다. 요청이 오면 후속 요청을 위해 토큰 버킷에서 토큰을 가져옵니다. 밖으로. .

  GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.

  5. Leaky bucket 알고리즘: 요청이 Leaky Bucket에 먼저 들어가고, Leaky Bucket은 요청 수가 Leaky Bucket의 용량을 초과하는 경우 일정 속도로 요청을 처리합니다. 긴급 상황에는 적합하지 않은 친근한 방식입니다.

 GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.

 위 두 토큰 알고리즘의 차이점: 리키 버킷 알고리즘은 전송 속도를 강제로 제한할 수 있고, 토큰 버킷 알고리즘: 평균 전송 속도를 제한하고 특정 긴급 상황을 허용할 수 있습니다.

GS 관리자 전류 제한 방법

GS 관리자는 golang.org/x/time/rate에 있는 매우 사용하기 쉬운 전류 제한기 시간/속도를 참조할 수 있습니다. 공식 문서. GS 관리자는 웹 미들웨어를 캡슐화했습니다. 구성 파일에서 적절한 매개변수만 구성하면 됩니다

rate:
  limit: 15 //每秒产生得令牌数量
  burst: 2 //令牌得大小
로그인 후 복사

테스트 후 현재 제한을 초과하면 미들웨어가 실행됩니다

func Limiter() gin.HandlerFunc {
    return func(c *gin.Context) {
        if global.Limiter.Allow() == false {
            global.Response{}.Failed(c, "当前请求过快,请稍后再试!")
            c.Abort()
            return
        }
        c.Next()
    }
}
로그인 후 복사
.

위 내용은 GS Admin의 전류 제한 기능을 사용하는 방법을 자세히 설명하는 기사입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿