Class FcCommandConfig
java.lang.Object
org.frontcache.resilience.FcCommandConfig
The resolved settings for one command key, read from conf/resilience.properties by
FcResilienceConfig and translated to Resilience4j configs here.
The Hystrix property names and their semantics are preserved verbatim - the property names outlived
the library, and
its keys, so an operator's existing tuning carries over untouched. See proposal section 5.1 for the
key-by-key mapping.-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionio.github.resilience4j.bulkhead.BulkheadConfigmaxWaitDuration is ZERO on purpose: Hystrix's semaphore is a non-blocking tryAcquire, so a non-zero wait here would silently turn rejections into queued waits.io.github.resilience4j.circuitbreaker.CircuitBreakerConfigTwo Resilience4j defaults have to be overridden or production behavior changes silently: permittedNumberOfCallsInHalfOpenState (R4j 10, Hystrix probes with exactly 1) and the exception exclusions below.intintParsed but NOT enforced - reported on the dashboard only, so an existing resilience.properties round-trips and thepropertyValue_fallbackIsolationSemaphoreMaxConcurrentRequestsfield the dashboard asserts keeps carrying the operator's value.intintintintintbooleanio.github.resilience4j.timelimiter.TimeLimiterConfig
-
Method Details
-
getCommandKey
-
getIsolation
-
getTimeoutMs
public int getTimeoutMs() -
isInterruptOnTimeout
public boolean isInterruptOnTimeout() -
getSemaphoreMaxConcurrentRequests
public int getSemaphoreMaxConcurrentRequests() -
getErrorThresholdPercentage
public int getErrorThresholdPercentage() -
getRequestVolumeThreshold
public int getRequestVolumeThreshold() -
getSleepWindowMs
public int getSleepWindowMs() -
getRollingStatsMs
public int getRollingStatsMs() -
getThreadPoolKey
-
getFallbackSemaphoreMaxConcurrentRequests
public int getFallbackSemaphoreMaxConcurrentRequests()Parsed but NOT enforced - reported on the dashboard only, so an existing resilience.properties round-trips and thepropertyValue_fallbackIsolationSemaphoreMaxConcurrentRequestsfield the dashboard asserts keeps carrying the operator's value. See proposal section 6.3. -
circuitBreakerConfig
public io.github.resilience4j.circuitbreaker.CircuitBreakerConfig circuitBreakerConfig()Two Resilience4j defaults have to be overridden or production behavior changes silently: permittedNumberOfCallsInHalfOpenState (R4j 10, Hystrix probes with exactly 1) and the exception exclusions below. The exclusions are the non-obvious half. Resilience4j's decorators record every exception the decorated call throws, including the rejections thrown by the bulkhead and the thread pool that sit inside the breaker. Hystrix counts neither SEMAPHORE_REJECTED nor THREAD_POOL_REJECTED against the error percentage. Without these exclusions a saturated node would open its own circuits purely because it was busy - a load-shedding spiral that is entirely an artifact of the library swap. -
timeLimiterConfig
public io.github.resilience4j.timelimiter.TimeLimiterConfig timeLimiterConfig() -
bulkheadConfig
public io.github.resilience4j.bulkhead.BulkheadConfig bulkheadConfig()maxWaitDuration is ZERO on purpose: Hystrix's semaphore is a non-blocking tryAcquire, so a non-zero wait here would silently turn rejections into queued waits. It defaults to zero in Resilience4j 2.x, and is set explicitly rather than assumed.
-