Académique Documents
Professionnel Documents
Culture Documents
TP3 Part 5 Resilience4j
TP3 Part 5 Resilience4j
TP3 part 5
Pr. HACHCHANE 1
Resilience4j
Resilience4j est une bibliothèque Java conçue pour renforcer la résilience des applications Java. Elle propose
plusieurs composants légers, de style fonctionnel et modulaires pour aider les développeurs à construire des
systèmes robustes et tolérants aux erreurs.
Pr. HACHCHANE 2
Resilience4j
Circuit Breaker :
Resilience4j inclut un modèle de circuit breaker qui aide à prévenir la surcharge du système et à améliorer la
tolérance aux erreurs. Il surveille les échecs et ouvre le circuit lorsque le taux d'échec dépasse un seuil défini,
empêchant ainsi d'autres appels à l'opération défaillante.
Order inventory
Service Service
• Le Circuit Breaker surveille l'état des appels à une ressource distante (service, API, base de données, etc.).
• Lorsqu'un certain nombre d'échecs consécutifs est atteint, le Circuit Breaker se déclenche et "ouvre" le circuit,
empêchant ainsi tout nouvel appel à la ressource.
Pr. HACHCHANE 3
Resilience4j
closed Open
Half
Open
Pr. HACHCHANE 4
Application: Resilience4j
Ajouter la dependance
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
Pr. HACHCHANE 5
Application: Resilience4j
Ajouter la dependance
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
#Resilinece4j Properties
resilience4j.circuitbreaker.instances.inventory.registerHealthIndicator=true
resilience4j.circuitbreaker.instances.inventory.event-consumer-buffer-size=10
resilience4j.circuitbreaker.instances.inventory.slidingWindowType=COUNT_BASED
resilience4j.circuitbreaker.instances.inventory.slidingWindowSize=5
resilience4j.circuitbreaker.instances.inventory.failureRateThreshold=50
resilience4j.circuitbreaker.instances.inventory.waitDurationInOpenState=5s
resilience4j.circuitbreaker.instances.inventory.permittedNumber0fCallsInHalfOpenState=3
resilience4j.circuitbreaker.instances.inventory.automaticTransitionFromOpenToHalfOpenEnabled=true
Pr. HACHCHANE 6
Application: Resilience4j
Modifier OrderRestController
Pr. HACHCHANE 7
Application: Resilience4j
Modifier OrderRestController
http://localhost:9999/order-service/actuator/health
Pr. HACHCHANE 8
http://localhost:9999/order-service/fullOrder/2
Application: Resilience4j
Pr. HACHCHANE 9
Application: Resilience4j http://localhost:9999/order-service/fullOrder/2
Arretez inventory-service.
On a reçu le retour du Fallback method
Pr. HACHCHANE 10