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

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

藏色散人
藏色散人앞으로
2022-12-01 16:12:045986검색

이번 글에서는 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으로 문의하시기 바랍니다. 삭제