Une passerelle cloud-native sert de point d'entrée à votre architecture système en combinant les fonctions d'une passerelle de trafic traditionnelle et d'une passerelle de microservices. Cette intégration réduit considérablement la surcharge réseau et les coûts opérationnels, tout en offrant une gouvernance du trafic et une observabilité complètes. Cette rubrique explique comment configurer une politique de routage et définir des alertes en associant une passerelle cloud-native aux services enregistrés dans un registre de services MSE Nacos.
Prérequis
Vous avez créé une passerelle cloud-native. Pour plus d'informations, consultez la section Créer une passerelle cloud-native.
Vous avez créé un moteur MSE Nacos. Pour plus d'informations, consultez la section Créer un moteur MSE Nacos.
Vous avez enregistré un service auprès de MSE Nacos. Pour plus d'informations, consultez la section Utiliser MSE Nacos comme registre de services pour une application Spring Cloud.
Les passerelles cloud-native ne prennent pas en charge les services on-premises enregistrés auprès de MSE Nacos ou ZooKeeper.
Créer une route
Connectez-vous à la console MSE. Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, choisissez Cloud-native Gateway > Gateways. Sur la page Gateways, cliquez sur l'ID de la passerelle.
Dans le volet de navigation de gauche, cliquez sur Routes. Sous l'onglet Routes, cliquez sur Add Route.
Sur la page Add Route, définissez le paramètre Route Name sur
springcloud-demo, sélectionnez * pour le paramètre Domain Name et configurez la règle de correspondance du paramètre Path sur Prefix avec la valeur /. Pour la destination de la route, sélectionnez Single Service, puis cliquez sur Associate Service sous le paramètre Service Name.-
Dans le panneau Associate Service, configurez les paramètres et cliquez sur OK.
Définissez le paramètre Source Type sur MSE Nacos, sélectionnez le Namespace cible, puis choisissez le service nacos-service-consumer dans la liste des services.
Définissez le paramètre Service Name sur
nacos-service-consumeret cliquez sur Save and Advertise.
Configurer une politique de routage
Tester la route sans politique
Connectez-vous à la console MSE.
Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, choisissez Cloud-native Gateway > Gateways. Sur la page Gateways, cliquez sur l'ID de la passerelle.
-
Sur la page Overview, cliquez sur l'onglet Gateway Ingress pour afficher l'adresse Ingress IP Address de la passerelle.
La liste contient des instances SLB publiques et privées. L'Ingress IP Address d'une instance publique, telle que
8.136.xxx.xxx, correspond à l'entrée publique de la passerelle.RemarqueL'adresse IP d'entrée d'une passerelle cloud-native est l'adresse IP d'une instance SLB associée. Vous pouvez remplacer l'instance SLB associée par la vôtre. Pour plus d'informations, consultez la section Gérer l'SLB d'entrée de la passerelle.
-
Exécutez la commande suivante pour envoyer une requête de test. Remplacez <public_ingress_ip> par l'adresse IP d'entrée publique obtenue à l'étape précédente.
curl -I http://<public_ingress_ip>/echo-rest/helloRemarqueCette commande envoie une requête au service de démonstration provenant de MSE Nacos. Vous pouvez modifier le chemin de la requête en fonction de votre service backend réel.
Une requête réussie renvoie la réponse suivante :
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:21:47 GMT req-cost-time: 9 req-arrive-time: 1724919707979 resp-start-time: 1724919707988 x-envoy-upstream-service-time: 8 server: istio-envoy
Configurer une politique de limitation de débit
Dans les scénarios à forte concurrence, une augmentation soudaine des requêtes peut surcharger les services backend en l'absence d'une limitation appropriée. Cela peut dégrader les temps de réponse, voire provoquer des pannes de service. La limitation de débit garantit que le volume de requêtes reste dans une plage gérable. Une passerelle cloud-native vous permet de configurer une politique de limitation pour protéger vos services. Pour plus d'informations sur les autres politiques de routage, consultez la section Politiques de routage.
Connectez-vous à la console MSE. Dans la barre de navigation supérieure, sélectionnez une région.
Dans le volet de navigation de gauche, choisissez Cloud-native Gateway > Gateways. Sur la page Gateways, cliquez sur l'ID de la passerelle.
Dans le volet de navigation de gauche, choisissez Routes.
Recherchez la route à gérer et cliquez sur Policies dans la colonne Actions.
-
Sous l'onglet Policies, cliquez sur Throttling.
Une règle de contrôle de flux surveille la métrique QPS (requêtes par seconde) d'une route. Lorsque la métrique atteint le seuil spécifié, la passerelle bloque immédiatement le trafic ultérieur. Cela empêche les services backend d'être submergés par des pics de trafic soudains et contribue à garantir une haute disponibilité.
Dans la section Throttling, cliquez sur l'onglet Throttling Rules.
-
Dans la zone Throttling Rules, configurez les paramètres suivants.
Parameter
Description
Example
Overall QPS Threshold
Spécifie le Overall QPS Threshold.
1
Web fallback behavior
Définissez le paramètre Web fallback behavior sur Returns the specified content ou Jump to the specified page.
Return specified content
HTTP Status Code
Spécifie le HTTP Status Code à renvoyer pour une requête limitée. La valeur par défaut est 429.
429
Returned Content-Type
Définissez le paramètre Returned Content-Type sur Plain text ou JSON.
Plain text
Returned HTTP Text
Spécifie le corps de la réponse de secours.
springcloud-demo flow limit
Whether to open
Active ou désactive cette règle.
Selected Cliquez sur New ou Save, puis sur OK dans la boîte de dialogue de confirmation.
-
Exécutez le script suivant pour tester la politique. Remplacez <public_ingress_ip> par votre adresse IP d'entrée publique.
Windows
@echo off set "localUrl=http://<public_ingress_ip>/echo-rest/hello" :loop curl -i -s %localUrl% goto loopLinux
#!/bin/bash URL="http://<public_ingress_ip>/echo-rest/hello" while true; do curl -i -s $URL doneRéponse attendue : une fois la politique de limitation activée, les requêtes dépassant le seuil QPS sont bloquées et reçoivent un code d'état HTTP 429 ainsi que le message personnalisé.
HTTP/1.1 429 Too Many Requests content-type: text/plain; charset=UTF-8 content-length: 26 date: Thu, 29 Aug 2024 08:54:46 GMT server: istio-envoy springcloud-demo flow limit
Documentation connexe
Pour le dépannage, consultez la section FAQ sur les passerelles cloud-native. Vous pouvez également utiliser la fonctionnalité de diagnostic intégrée. Pour plus d'informations, consultez la section Diagnostic IA pour les passerelles cloud-native.