この記事ではGS Adminの電流制限機能の使い方を紹介します GS Admin=gin scuiはgolangによって開発されたエンタープライズレベルのバックエンドです 使い方を見てみましょう~ そうなるといいですねみんなに役立つ。
倉庫
giee: gitee.com/kevn/gsadmin/tree/master github: github.com/sonhineboy/gsadmin
説明
ウェブサイトの日常の運用プロセスにおいて, 同時実行数がサービスのしきい値に達すると、電流制限を通じてサービスの可用性を確保できます。 [推奨: golang チュートリアル ]
一般的な電流制限方法:
1. バッファリングされた chann を使用し、chann が満杯の場合は、サービスを拒否するか、サービスを提供します。フレンドリーなプロンプトやフレンドリーなページへのジャンプなど。
2. カウンタは 10 秒以内に 100 リクエストのみを受け付けます。100 リクエストを超えるとサービスは拒否され、10 秒を超えるとカウントは 0 に戻り、再度リクエストが受け付けられます。
3. httpserver の頻度制限を使用します。自分で実装する必要はありません。
4. トークンバケットアルゴリズム: トークンを一定速度でトークンバケットに投入し、リクエストが来ると、後続のリクエストのためにトークンバケットからトークンを取得します。トークンの取得に失敗した場合は、フレンドリーな態度で対応してくれました。
5. リーキーバケットアルゴリズム: リクエストは最初にリーキーバケットに入り、リーキーバケットは固定レートでリクエストを処理します。超過したリクエストはフレンドリーな方法で処理されますが、突然のリクエストのシナリオには適していません。
上記 2 つのトークン アルゴリズムの違い: リーキー バケット アルゴリズムは送信速度を強制的に制限でき、トークン バケット アルゴリズムは平均送信速度を制限し、特定の送信速度を許可できます。バースト状態。
GS Admin の電流制限方法
GS Admin は golang を使用しており、非常に便利な電流制限時間/レートが golang.org/x/time/rate にあります。 具体的な使用方法公式ドキュメントに記載されています。 GS Admin は Web ミドルウェアをカプセル化しました。構成ファイルで適切なパラメータを設定するだけで済みます。
rate: limit: 15 //每秒产生得令牌数量 burst: 2 //令牌得大小
テスト後、現在の制限を超えると、ミドルウェアがトリガーされます。コードは次のとおりです
りー以上がGS Adminの電流制限機能の使い方を詳しく解説した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。