Cet article vous présentera l'utilisation de la fonction de limitation actuelle de GS Admin. GS Admin=gin+scui est un backend de niveau entreprise développé par golang. Voyons comment l'utiliser ~ J'espère que cela vous sera utile. à tout le monde.
Entrepôt
giee: gitee.com/kevn/gsadmin/tree/master github: github.com/sonhineboy/gsadmin
Instructions
Dans le processus de fonctionnement quotidien du site Web, lorsque le nombre de concurrence atteint le seuil de notre service, nous pouvons assurer la disponibilité du service grâce à une limitation de courant. [Recommandé : Tutoriel Golang]
Méthodes courantes de limitation de courant :
1. Utilisez une chaîne en mémoire tampon, refusez le service ou donnez une invite amicale ou passez à une page conviviale.
2. Le compteur n'accepte que 100 demandes dans les 10 secondes. Lorsque le nombre dépasse 100 demandes, le service sera refusé. Lorsque le nombre dépasse 10 secondes, le décompte reviendra à zéro et la demande sera à nouveau acceptée.
3. Utilisez la limite de fréquence du serveur http, pas besoin de la mettre en œuvre vous-même.
4. Algorithme du seau de jetons : placez les jetons dans le seau de jetons à une vitesse constante. Lorsqu'une demande arrive, le jeton sera obtenu du seau de jetons pour les demandes suivantes. Lorsque le jeton ne parvient pas à être obtenu, un traitement convivial sera effectué. dehors. .
5. Algorithme du compartiment qui fuit : les requêtes entrent en premier dans le compartiment qui fuit, et le compartiment qui fuit traite les demandes à un rythme fixe. Lorsque le nombre de requêtes dépasse la capacité du compartiment qui fuit, les demandes excédentaires seront traitées dans un délai fixe. manière amicale, ce qui ne convient pas aux situations d'urgence.
La différence entre les deux algorithmes de jetons ci-dessus : l'algorithme de seau à fuite peut limiter de force le taux de transmission, et l'algorithme de seau à jetons : peut limiter le taux de transmission moyen et autoriser certaines urgences.
Méthode de limitation de courant GS Admin
GS Admin utilise Golang. Il existe un limiteur de courant très facile à utiliser situé sur golang.org/x/time/rate. Pour une utilisation spécifique, vous pouvez vous référer à . la documentation officielle. GS Admin a encapsulé le middleware Web. Il vous suffit de configurer les paramètres appropriés dans le fichier de configuration
rate: limit: 15 //每秒产生得令牌数量 burst: 2 //令牌得大小
Après le test, si la limite actuelle est dépassée, le middleware sera déclenché comme suit
func Limiter() gin.HandlerFunc { return func(c *gin.Context) { if global.Limiter.Allow() == false { global.Response{}.Failed(c, "当前请求过快,请稍后再试!") c.Abort() return } c.Next() } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!