TP: Circuit Breaker

Principe

  • Implémenter le pattern Circuit breaker sur l’appel au worker dans API.

Limitation des workers et charge

Au besoin, modifier votre contrôleur de worker du TP Scaling, pour limiter le nombre d’instances de worker à 3. Bien utiliser une implémentation de worker intégrant la méthode d’attente synchronisée dans la classe EncryptionService.Sleeper afin d’avoir des temps de réponse qui se cumulent lors d’une montée en charge.

Reprenez votre implémentation du test de charge du TP Scaling, et configurez la pour provoquer un temps d’attente important (par exemple 20s).

Implémentation du circuit-breaker

Implémentez une classe CircuitBreaker pour encapsuler les requêtes aux workers. Essayez de penser votre classe de manière assez générique. Attention, l’utilisation et la détection du timeout avec RestTemplate peut être un peu compliquée, penser à éventuellement gérer la mesure du temps avec du code ad-hoc.

Mettez en place le circuit-breaker et vérifiez son fonctionnement avec votre test de charge.

Liens