Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add a circuit breaker powered by resilience4j
  • Loading branch information
jmfayard committed Jun 14, 2021
1 parent db1d9ee commit 60d88ac
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
5 changes: 5 additions & 0 deletions graphql-gateway/build.gradle.kts
Expand Up @@ -26,6 +26,11 @@ dependencies {
implementation("com.graphql-java-kickstart:graphiql-spring-boot-starter:_")
implementation("com.graphql-java-kickstart:graphql-java-tools:_")

implementation("io.github.resilience4j:resilience4j-reactor:_")
implementation("io.github.resilience4j:resilience4j-kotlin:_")
implementation("io.github.resilience4j:resilience4j-spring-boot2:_")
implementation("io.github.resilience4j:resilience4j-circuitbreaker:_")

implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-aop")

Expand Down
Expand Up @@ -8,3 +8,30 @@ import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import java.time.Duration

@Configuration
class ResilienceConfig(
val circuitBreakerRegistry: CircuitBreakerRegistry
) {
val circuitBreakerConfig = CircuitBreakerConfig.custom()
.slidingWindow(3, 3, COUNT_BASED)
.waitDurationInOpenState(Duration.ofMillis(5000))
.failureRateThreshold(0.5f)
.build()

@Bean("catCircuitBreaker")
fun catCircuitBreaker(): CircuitBreaker {
return circuitBreakerRegistry.circuitBreaker(
"CatCCB",
circuitBreakerConfig
)
}

@Bean("dogCircuitBreaker")
fun dogCircuitBreaker(): CircuitBreaker {
return circuitBreakerRegistry.circuitBreaker(
"DogCCB",
circuitBreakerConfig
)
}

}
8 changes: 8 additions & 0 deletions graphql-gateway/versions.properties
Expand Up @@ -13,6 +13,14 @@ version.com.graphql-java-kickstart..graphql-java-tools=11.0.1

version.com.graphql-java-kickstart..graphql-spring-boot-starter=11.1.0

version.io.github.resilience4j..resilience4j-circuitbreaker=1.7.0

version.io.github.resilience4j..resilience4j-kotlin=1.7.0

version.io.github.resilience4j..resilience4j-reactor=1.7.0

version.io.github.resilience4j..resilience4j-spring-boot2=1.7.0

plugin.org.springframework.boot=2.5.1

plugin.io.spring.dependency-management=1.0.11.RELEASE
Expand Down

0 comments on commit 60d88ac

Please sign in to comment.