-
Notifications
You must be signed in to change notification settings - Fork 0
TP10
Noms des auteurs : BONTEMS Antoine, SCHOONYANS Ann-Lore, LAMAND Cyril
Date de réalisation : 19/05/2025
Expliquez comment vous avez divisé votre infrastructure en différents micro-services, en illustrant par un schéma.
La division à été réalisée comme tel :
-
Qu'avez-vous dû adapter dans vos containers pour implémenter ces changements ?
- Le service API à été split en d'autres services
-
Qu'avez-vous changé dans votre configuration nginx?
- Dans la config nginx, les requêtes vers certaines routes ont été déviées vers les autres Flasks via le nom des containers
Au lieu d'utiliser RabbitMQ et comme suggéré dans le TP, nous avons utilisé redis, lors du passage d'une commande, celle-ci se retrouve en file d'attente de traitement (ici c'est juste attendre mais ça simule un temps de traitement), un autre service s'occupe alors de traiter ce qui se trouve en file d'attente. Pour cela, l'api orders ajoute à une file d'attente les informations de la commande (l'id de la commande et le nom du produit ajouté), ces informations sont récupérées par l'api products qui s'occupe donc de traité ces informations.
-
Documentez comment vous avez protégé votre API contre une utilisation abusive.
- grâce à cette directive :
limit_req_zone $binary_remote_addr zone=gateway:1m rate=5r/s;, ainsi quelimit_req zone=gateway; limit_req_status 429;dans les zones concernées
- grâce à cette directive :
-
Expliquez votre procédure de validation de votre API Gateway.
moiwesh@vps-73644d5a:~$ for i in {1..10}; do curl -s -o /dev/null -w "%{http_code}\n" -L http://localhost/api/ping; sleep 0.2; done
200
200
200
200
200
200
200
200
200
200
moiwesh@vps-73644d5a:~$ for i in {1..10}; do curl -s -o /dev/null -w "%{http_code}\n" -L http://localhost/api/ping; sleep 0.1; done
200
429
200
429
200
429
200
429
200
429
