Circuit breaker DevoxxFr
-
Upload
mouhcine-moulou -
Category
Engineering
-
view
361 -
download
1
Transcript of Circuit breaker DevoxxFr
![Page 1: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/1.jpg)
@mouloumouhcine#CircuitBreaker
Tolerance au pannes avec
le Circuit Breaker Pattern
@mouloumouhcine Soat Consultant Scala
![Page 2: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/2.jpg)
![Page 3: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/3.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1 Service 2
![Page 4: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/4.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1 Service 2
Gaspillage des Resources VM (Thread, Mémoire, etc.)
![Page 5: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/5.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1 Service 2timeout
![Page 6: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/6.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1 Service 2timeout
Performance
![Page 7: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/7.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1
Service 3
Service 2
![Page 8: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/8.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1
Service 3
Service 2
![Page 9: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/9.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1
Service 3
Service 2
![Page 10: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/10.jpg)
@mouloumouhcine#CircuitBreaker
Problème
Service 1
Service 3
Service 2
Cascading Failures
![Page 11: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/11.jpg)
![Page 12: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/12.jpg)
@YourTwitterHandle@YourTwitterHandle@mouloumouhcine#CircuitBreaker
Solution
![Page 13: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/13.jpg)
![Page 14: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/14.jpg)
@YourTwitterHandle@YourTwitterHandle@mouloumouhcine#CircuitBreaker
« Let It Crash & Handle with Grace. »
![Page 15: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/15.jpg)
@mouloumouhcine#CircuitBreaker
Circuit Breaker
Service 1 Service 2
![Page 16: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/16.jpg)
@mouloumouhcine#CircuitBreaker
Circuit Breaker
Service 1 Service 2
![Page 17: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/17.jpg)
@mouloumouhcine#CircuitBreaker
Circuit Breaker
Service 1 Service 2Closed
![Page 18: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/18.jpg)
@mouloumouhcine#CircuitBreaker
Circuit Breaker
Service 1 Service 2Open
![Page 19: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/19.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerClosed
![Page 20: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/20.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerClosed Open
Max Failures
![Page 21: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/21.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerClosed Open
Half Open
?
Reset Timeout
Max Failures
![Page 22: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/22.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerClosed Open
Half Open
?
Reset TimeoutKO
OK
Max Failures
![Page 23: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/23.jpg)
@mouloumouhcine#CircuitBreaker
// Akka Implementationval breaker: CircuitBreaker = new CircuitBreaker( getContext().dispatcher(), getContext().system().scheduler(), // Scheduler 50, // maxFailures Duration.create(5, "s"), // Call Timeout Duration.create(1, "m") // Reset Timeout)
Exemple
![Page 24: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/24.jpg)
@mouloumouhcine#CircuitBreaker
// Sans Circuit Breaker dangerousCall();
Exemple
![Page 25: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/25.jpg)
@mouloumouhcine#CircuitBreaker
// Avec Circuit Breaker // Appel Scalabreaker.callWithCircuitBreaker( Future{
dangerousCall() }
)
Exemple
![Page 26: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/26.jpg)
@mouloumouhcine#CircuitBreaker
// Callable new Callable<String>() { public String call() throws Exception { return dangerousCall(); } }
Exemple
![Page 27: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/27.jpg)
@mouloumouhcine#CircuitBreaker
// Avec Circuit Breaker // Appel Javabreaker.callWithCircuitBreaker( new Callable<String>() { public String call() throws Exception { return dangerousCall(); } })
Exemple
![Page 28: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/28.jpg)
@mouloumouhcine#CircuitBreaker
breaker.onOpen( // …
// … )
Exemple
![Page 29: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/29.jpg)
@mouloumouhcine#CircuitBreaker
breaker.onOpen( // …
// … );
breaker.onClose( // …
// … )
Exemple
![Page 30: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/30.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerAvantages•Réponse rapide.•Meilleur utilisation des resources.•Cascading failures.•Monitoring.
![Page 31: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/31.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerAvantages•Réponse rapide.•Meilleur utilisation des resources.•Cascading failures.•Monitoring.
Inconvénients• Impossibilité de filtrer les exceptions
![Page 32: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/32.jpg)
@mouloumouhcine#CircuitBreaker
Circuit BreakerAvantages•Réponse rapide.•Meilleur utilisation des resources.•Cascading failures.•Monitoring.
Inconvénients• Impossibilité de filtrer les exceptions
ESSAYEZ LE !
![Page 33: Circuit breaker DevoxxFr](https://reader033.fdocuments.us/reader033/viewer/2022042615/55c3db8cbb61eb4f348b47bc/html5/thumbnails/33.jpg)
@YourTwitterHandle@YourTwitterHandle@mouloumouhcine#CircuitBreaker