Hystrix默认使用Archaius来实现的动态配置,下面是一个Command的实现:
Archaius 默认支持两种方式来加载本地的配置文件:
- 默认情况下,Archaius默认会加载classpath下的config.properties文件
- 在程序启动的时候,加如下的启动参数:-Darchaius.configurationSource.additionalUrls=file:///apps/myapp/application.properties
注:在代码中动态修改配置项的值,是无效的。
Hystrix支持的动态配置列表如下:
官网:https://github.com/Netflix/Hystrix/wiki/Configuration
Command Properties
- Execution
- execution.isolation.strategy
- execution.isolation.thread.timeoutInMilliseconds
- execution.timeout.enabled
- execution.isolation.thread.interruptOnTimeout
- execution.isolation.thread.interruptOnCancel
- execution.isolation.semaphore.maxConcurrentRequests
- Fallback
- fallback.isolation.semaphore.maxConcurrentRequests
- fallback.enabled
- Circuit Breaker
- circuitBreaker.enabled
- circuitBreaker.requestVolumeThreshold
- circuitBreaker.sleepWindowInMilliseconds
- circuitBreaker.errorThresholdPercentage
- circuitBreaker.forceOpen
- circuitBreaker.forceClosed
- Metrics
- metrics.rollingStats.timeInMilliseconds
- metrics.rollingStats.numBuckets
- metrics.rollingPercentile.enabled
- metrics.rollingPercentile.timeInMilliseconds
- metrics.rollingPercentile.numBuckets
- metrics.rollingPercentile.bucketSize
- metrics.healthSnapshot.intervalInMilliseconds
- Request Context
- requestCache.enabled
- requestLog.enabled
Collapser Properties
- maxRequestsInBatch
- timerDelayInMilliseconds
- requestCache.enabled
Thread Pool Properties
- coreSize
- maximumSize
- maxQueueSize
- queueSizeRejectionThreshold
- keepAliveTimeMinutes
- allowMaximumSizeToDivergeFromCoreSize
- metrics.rollingStats.timeInMilliseconds
- metrics.rollingStats.numBuckets