Concevoir et penser à travers le courant d'interface limite (fixée au châssis GitHub code source) Micro Service

Auteur | WANG Zheng

Modifier | Guo Lei - parler de l'architecture publique No.

Après séparation des micro-services, appelez la relation complexe entre le système, la complexité globale de l'augmentation de la plate-forme d'entropie, la probabilité d'erreur, le débogage des problèmes difficiles sont plusieurs ordres de grandeur. Par conséquent, un service de gestion de la technologie est devenue le point central des micro-services. Le concept lui-même est relativement importante la gestion des services, y compris l'authentification, ce qui limite, la rétrogradation, le fusible, les alarmes du moniteur, et ainsi de suite, cet article se concentre sur la limite actuelle, basée sur l'expérience pratique de l'auteur, de partager quelques réflexions sur la limite actuelle de l'interface micro-service.

Ce document tente de dégager les questions suivantes, si vous avez des questions similaires au sujet de la limitation ou intéressés par un sujet, bienvenue à lire cet article.

  • architecture service de micro, l'interface ne limite pas, quels sont les problèmes que vous pouvez rencontrer?

  • Interface de service pour les micro-limites, ce qui limite comment choisir l'algorithme droit?

  • Selon peser comment choisir une des scènes autonome ou distribué et les exigences de performance limite?

  • Quelle est la flexibilité selon les besoins des entreprises pour sélectionner un autre mécanisme de fusible limiteur de courant?

  • Comment choisir la bonne taille et en limitant la valeur limite de courant maximum de l'interface?

  • Comment vérifier la validité et l'exactitude des micro-interface de service limitation de la fonction?

  • Comment construire très tolérance aux pannes, haute TPS, cadre limitant à faible latence?

  • Fin de l'article, l'auteur passe également à limiter le cadre open source: ratelimiter4j, bienvenue à l'utilisation d'actions.

    1 Micro-service de l'interface fond limitant

    En réponse à la pointe, grande promotion, lorsque la double pression de 11618 scène haute performance, la technologie de limitation est devenue la solution standard, afin d'assurer le bon fonctionnement du système a joué un rôle clé. Peu importe quel genre de scénario, rien de plus que la limite actuelle pour plus que le flux prévu par les règles pré-ensemble limitant la sélectivité de certaines demandes de limitation « fusible ». En raison de la capacité des limites de l'espace et de l'expérience de l'auteur, l'article principalement sur l'architecture micro-services, ce qui limite l'interface de service.

    Pour les micro-services est, en particulier, une partie de la micro-station service, ses demandes d'interface peuvent provenir de nombreux systèmes, tels que l'interface utilisateur du service sera beaucoup d'appels internes du système, tels que CRM, systèmes de vente. Services pour les micro-systèmes et de répondre à de nombreux appels demandant des interfaces massives, l'interface limitant plus de répondre à une partie de la grande scène pic de promotion à l'extérieur, selon certains scénarios jouent également un rôle important mentionné ci-dessus.

    En tant qu'interface de service pour fournir le système de micro-service, nous ne pouvons pas limiter la façon dont l'appelant à utiliser notre interface, nous venons de rencontrer certains appelants travail d'exécution multithread pour demander notre interface, également rencontré quelques-uns parce que code bug ou flux de trafic inattendu au-dessus de l'appelant, ce qui entraîne le nombre de demandes d'interface de l'augmentation soudaine de l'appelant dans le thread de service de contention excessive des ressources, et les demandes d'interface de la réponse de votre interlocuteur et donc pas de temps à attendre en ligne, un service peu générale demande le temps de délai de réponse devient encore plus. Par conséquent, afin d'éviter que l'interface excessive est invoquée, la nécessité d'un accès à grains fins limitant chaque appelant.

    En plus de la limite de fréquence d'accès de l'appelant, nous ne devons parfois de restreindre l'accès à certaines fréquences interface. Par exemple, certaines interfaces lente, probablement à cause de la logique complexe, le temps de traitement sera plus, si la fréquence des visites à l'interface lente sans restriction, les demandes d'interface trop lent, toujours prendre le fil ne libère pas les ressources et services, menant à d'autres interfaces ne peuvent pas répondre à la demande, effets du débit global du système micro services et interfaces temps de réponse, les interfaces et même causer beaucoup d'heures supplémentaires. En plus des interfaces plus lentes, une interface de base, car une fois l'impact de l'accès anormal au service est relativement important, en plus de faire l'authentification d'appel, la nécessité de faire de limiter le trafic anormal inattendu.

    En résumé, nous avons non seulement besoin de l'interface de service pour les micro-fonction de limitation de la grande promotion scène pic à gros grains: tels que les restrictions sur les micro-cluster demandes de service unique machine par seconde, nous avons aussi besoin de plus pour les différents appels d'interfaces même différentes limitant à grain fin: par exemple, de limiter le nombre maximum de fois par seconde un appelant à une interface pour une demande de service.

    2 Micro-service de l'interface fond limitant

    Comment limiter le « flux » de l'interprétation du mot il? Quels indicateurs pour se limiter à la fin il est? Différents scénarios de la définition de « flux » est différent, peut être un trafic réseau, la bande passante, le nombre de transactions par seconde (TPS), les demandes (hits par seconde) par seconde, le nombre de requêtes simultanées, le service peut être même certains indicateurs, comme permettant une requête utilisateur pendant une certaine période de temps au nombre de codes courts.

    Du point de vue disponibles assurer que les considérations de stabilité du système, le système de service pour le micro, le meilleur indicateur est une limitation: nombre de requêtes simultanées. En limitant le nombre de demandes traitées en même temps peut être limité à tout moment il n'y aura pas trop de demandes dans la consommation des ressources, telles que: Nous configurons le nombre de conteneur de servlet worker threads web 200, en tout temps jusqu'à seulement 200 demandes ont été traitées plus de demandes en attente sont bloquées.

    D'un parlé, nous devons résoudre l'appelant contention excessive des ressources, des services, et même différentes interfaces ont également besoin de faire à grains fins de limitation pour certains appelants, donc nous avons besoin en plus de la limite globale du système, le nombre de requêtes simultanées faire en outre, le nombre de demandes requis pour chaque appelant ou même différentes interfaces concurrentes ne limites. Toutefois, pour définir un nombre maximal raisonnable de la concurrence de l'appelant est difficile, très difficile d'obtenir cette valeur par les statistiques de surveillance trop facile d'homicide involontaire coupable, pas beaucoup d'action était en cours. Nous avons donc besoin également d'autres indicateurs limitant.

    La comparaison des deux indicateurs TPS et coups par seconde, nous avons choisi de hits par seconde utilisation comme indicateurs de limitation. Parce que, pour limiter les TPS, il est impossible de le faire, TPS représente le nombre de transactions par seconde, le début d'une demande de transaction est reçue par l'interface, la fin de la transaction est traitée retours, donc il y a un certain laps de temps, si le début de la limite de transaction incrémenter un compteur d'écoulement, à la fin du compteur de transactions par un limiteur de débit, l'élément de restriction équivalent à simultané. Si la demande de transaction reçue comme un temps de comptage de points, il dégénère à faire coups selon par seconde restriction, et si la fin de la transaction comme un temps de comptage de points, la valeur du compteur ne représente pas la pression actuelle du système et l'accès suivant du système .

    Limite de coups par seconde flux est un indicateur valable de limiter? La réponse est oui, cette valeur est disponible des statistiques observables, il est facile de règles limitant configure, et la valeur actuelle de la performance du système de réaction et la pression après une certaine mesure, pour limiter cet indicateur peut en effet atteindre la limite l'utilisation des ressources du système.

    Une fois que vous avez défini les flux, nous allons examiner plusieurs algorithme limitant couramment utilisé: une fenêtre de temps fixe, fenêtre coulissante, l'algorithme de seau de jetons, l'algorithme de seau qui fuit, ainsi que leur version améliorée.

    3 Fixe, fenêtre coulissante limiteur de débit de l'algorithme

    Limiter algorithme basé sur une fenêtre de temps fixe est très simple. Vous devez d'abord sélectionner un point de départ dans le temps, après chaque demande vient interfaces sont mises contre, si, dans la fenêtre de temps en cours, en fonction de la règle de limitation (par exemple, 100 fois par seconde, la demande d'interface maximale admissible), le nombre cumulé de visites est supérieure à la valeur actuelle, la demande d'interface de limitation du courant de fusible refusé. Lorsque la fenêtre de temps suivante, le compteur est autorisé à recompter.

    Cet inconvénient de l'algorithme de limitation basée sur une fenêtre de temps fixe sont: limiter la politique est trop grossière, ne peut pas faire face à la circulation dans les deux bursty fenêtres de temps de temps critique. Nous donnons un exemple: Supposons que nous limitant règle pas plus de 100 fois par seconde demandes d'interface, 1s dans la première fenêtre temporelle 100 demandes d'interface sont concentrées dans les 10ms finales, dans une deuxième fenêtre temps 1s , sont concentrées 100 demandes d'interface en début de 10ms, bien que dans les deux fenêtres de temps sont en conformité avec les exigences de restriction d'écoulement ( < = 100 demandes), mais dans les deux fenêtres de temps de 20 ms se concentrera sur l'interface secondaire critiques 200 demandes, sinon limiter, concentré 200 fois 20ms dans cette demande est susceptible de submerger le système, comme représenté sur la figure -1 :

    algorithme de fenêtre glissante est un algorithme amélioré de la fenêtre de temps fixe, coulissant flux de fenêtre après mise en forme algorithme, la fenêtre peut être garanti à tout moment, ne dépasse pas la valeur limite maximale admissible, le débit de la lisse la courbe se penchera vous pouvez résoudre certains des problèmes de trafic d'éclatement critiques mentionnées ci-dessus. algorithme comparatif limitant une fenêtre de temps fixe, algorithme de fenêtre coulissante limitant la fenêtre de temps continuait de glisser, et nécessite un compteur d'enregistrement dans une fenêtre de temps au-delà du nombre de demandes en plus de l'interface, mais enregistre également dans la fenêtre de temps pour chaque atteint demande d'interface point dans le temps, la consommation de mémoire sera plus. modèle d'algorithme à fenêtre glissante est la suivante:

    L'enregistrement d'une liste de fenêtre coulissante point temporel = (t_1, t_2, ... t_k), la taille de la fenêtre de temps de 1 seconde, le point de départ est la liste des points de temps minimum. Quand une nouvelle demande vient T_M temps, nous mettons à jour la fenêtre coulissante en suivant ces étapes et déterminer si oui ou non le fusible limiteur de courant:

    ÉTAPE 1: Vérifiez si l'interface demandée dans l'heure actuelle fenêtre de temps de T_M

    Chen Chang-yue répondre Ty. Merci encore une fois de diss-- cette chanson me fait chaud sentiment
    Précédent
    Roewe MARVEL X jouer une technologie intelligente « combinée », les nouvelles forces de Réparateur de propagande « Take That »
    Prochain
    « Neil mécanique Corps » des éléments de RPG: puce, renforcer le système annoncé
    Toujours quelqu'un dans le spectacle vivant Xiaoqinglong, criant PG nom Gai One
    Le nom de golf, boire du thé ...... soit dit en passant, a également enregistré une Jaguar 2019 XFL
    « EXO » « Partager » 190328 de la tempête peut frapper une série de veines, Xiao Wu est une hormone de marche
    connaissances JVM Résumé: entretien Senior Java Engineer nécessaire
    jeu japonais / semaine de ventes de matériel 12/12 au 12/182016
    2019 grand aujourd'hui de lancement en dehors du drame perspective thématique, le drame actualisez cette année en avance sur les prévisions
    Edison Chen Luo Kaiyuan Diss: Les gens Hiphop L'homme, vous êtes Hiphop Dieu
    Les jeunes artistes vont restant Huachen Yu! Mango plans pour construire 95 nouveau poste, "Zhang Han Zheng Shuang"
    Les processeurs mobiles les plus forts! Ce qu'Apple A12X excelle puce bionique?
    « EXO » « part » sera visible après toute l'énergie de la récolte Citations Bobo 190,326 « juste pour me donner le bonheur existe ».
    la plupart des rappeurs mystérieux de la Chine diss l'ensemble de la Chine et ses joueurs ont le hip hop!