Slide 24
Slide 24 text
Fault Tolerance
24
Basé sur MP FaultTolerance:
o @Timeout, @Retry, @Fallback, @CircuitBreaker,
@Asynchronous, @BulkHead
Basé sur Resilience4J:
o En remplacement de Hystrix
o Configuration programmatique
@Bean
public Customizer
createSlowNumbersAPI…() {
return factory -> factory.configure(
builder ->
builder.circuitBreakerConfig(CircuitBreakerConfig.ofDefaults())
.timeLimiterConfig(TimeLimiterConfig.custom()
.timeoutDuration(Duration.ofSeconds(timeoutInSec))
.build()), "slowNumbers");
}
public Book registerBook(@Valid Book book) {
circuitBreakerFactory.create("slowNumbers").run(
() -> persistBook(book),
throwable -> fallbackPersistBook(book)
);
@Fallback(fallbackMethod = "fallbackPersistBook")
public Book registerBook(@Valid Book book) {
IsbnNumbers numbers=proxy.generateIsbnNumbers();
[…]
}
// Number service not available!
private Book fallbackPersistBook(Book book) {
// Store the book creation request locally
[…]
}