You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/04/19 18:19:40 UTC
[21/24] camel git commit: CAMEL-9879: Circuit Breaker EIP - That is
using hystrix
CAMEL-9879: Circuit Breaker EIP - That is using hystrix
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4b67c6c4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4b67c6c4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4b67c6c4
Branch: refs/heads/master
Commit: 4b67c6c4bb753a95ae081d64b9bfb922c919a332
Parents: 2e3745f
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Apr 19 14:59:14 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Apr 19 18:16:45 2016 +0200
----------------------------------------------------------------------
.../processor/HystrixProcessorFactory.java | 189 ++++++++++---------
1 file changed, 97 insertions(+), 92 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4b67c6c4/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessorFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessorFactory.java b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessorFactory.java
index bc1cca8..276275d 100644
--- a/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessorFactory.java
+++ b/components/camel-hystrix/src/main/java/org/apache/camel/component/hystrix/processor/HystrixProcessorFactory.java
@@ -59,99 +59,15 @@ public class HystrixProcessorFactory implements ProcessorFactory {
HystrixThreadPoolProperties.Setter threadPool = HystrixThreadPoolProperties.Setter();
setter.andThreadPoolPropertiesDefaults(threadPool);
- // any custom configuration then override the setter
- if (cb.getHystrixConfiguration() != null || cb.getHystrixConfigurationRef() != null) {
+ // at first configure any shared options
+ if (cb.getHystrixConfigurationRef() != null) {
+ HystrixConfigurationDefinition config = CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), cb.getHystrixConfigurationRef(), HystrixConfigurationDefinition.class);
+ configureHystrix(command, threadPool, config);
+ }
+ // then any local configured can override
+ if (cb.getHystrixConfiguration() != null) {
HystrixConfigurationDefinition config = cb.getHystrixConfiguration();
- if (config == null && cb.getHystrixConfigurationRef() != null) {
- config = CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), cb.getHystrixConfigurationRef(), HystrixConfigurationDefinition.class);
- }
-
- // command
- if (config.getCircuitBreakerEnabled() != null) {
- command.withCircuitBreakerEnabled(config.getCircuitBreakerEnabled());
- }
- if (config.getCircuitBreakerErrorThresholdPercentage() != null) {
- command.withCircuitBreakerErrorThresholdPercentage(config.getCircuitBreakerErrorThresholdPercentage());
- }
- if (config.getCircuitBreakerForceClosed() != null) {
- command.withCircuitBreakerForceClosed(config.getCircuitBreakerForceClosed());
- }
- if (config.getCircuitBreakerForceOpen() != null) {
- command.withCircuitBreakerForceOpen(config.getCircuitBreakerForceOpen());
- }
- if (config.getCircuitBreakerRequestVolumeThreshold() != null) {
- command.withCircuitBreakerRequestVolumeThreshold(config.getCircuitBreakerRequestVolumeThreshold());
- }
- if (config.getCircuitBreakerSleepWindowInMilliseconds() != null) {
- command.withCircuitBreakerSleepWindowInMilliseconds(config.getCircuitBreakerSleepWindowInMilliseconds());
- }
- if (config.getExecutionIsolationSemaphoreMaxConcurrentRequests() != null) {
- command.withExecutionIsolationSemaphoreMaxConcurrentRequests(config.getExecutionIsolationSemaphoreMaxConcurrentRequests());
- }
- if (config.getExecutionIsolationStrategy() != null) {
- command.withExecutionIsolationStrategy(HystrixCommandProperties.ExecutionIsolationStrategy.valueOf(config.getExecutionIsolationStrategy()));
- }
- if (config.getExecutionIsolationThreadInterruptOnTimeout() != null) {
- command.withExecutionIsolationThreadInterruptOnTimeout(config.getExecutionIsolationThreadInterruptOnTimeout());
- }
- if (config.getExecutionTimeoutInMilliseconds() != null) {
- command.withExecutionTimeoutInMilliseconds(config.getExecutionTimeoutInMilliseconds());
- }
- if (config.getExecutionTimeoutEnabled() != null) {
- command.withExecutionTimeoutEnabled(config.getExecutionTimeoutEnabled());
- }
- if (config.getFallbackIsolationSemaphoreMaxConcurrentRequests() != null) {
- command.withFallbackIsolationSemaphoreMaxConcurrentRequests(config.getFallbackIsolationSemaphoreMaxConcurrentRequests());
- }
- if (config.getFallbackEnabled() != null) {
- command.withFallbackEnabled(config.getFallbackEnabled());
- }
- if (config.getMetricsHealthSnapshotIntervalInMilliseconds() != null) {
- command.withMetricsHealthSnapshotIntervalInMilliseconds(config.getMetricsHealthSnapshotIntervalInMilliseconds());
- }
- if (config.getMetricsRollingPercentileBucketSize() != null) {
- command.withMetricsRollingPercentileBucketSize(config.getMetricsRollingPercentileBucketSize());
- }
- if (config.getMetricsRollingPercentileEnabled() != null) {
- command.withMetricsRollingPercentileEnabled(config.getMetricsRollingPercentileEnabled());
- }
- if (config.getMetricsRollingPercentileWindowInMilliseconds() != null) {
- command.withMetricsRollingPercentileWindowInMilliseconds(config.getMetricsRollingPercentileWindowInMilliseconds());
- }
- if (config.getMetricsRollingPercentileWindowBuckets() != null) {
- command.withMetricsRollingPercentileWindowBuckets(config.getMetricsRollingPercentileWindowBuckets());
- }
- if (config.getMetricsRollingStatisticalWindowInMilliseconds() != null) {
- command.withMetricsRollingStatisticalWindowInMilliseconds(config.getMetricsRollingStatisticalWindowInMilliseconds());
- }
- if (config.getMetricsRollingStatisticalWindowBuckets() != null) {
- command.withMetricsRollingStatisticalWindowBuckets(config.getMetricsRollingStatisticalWindowBuckets());
- }
- if (config.getRequestCacheEnabled() != null) {
- command.withRequestCacheEnabled(config.getRequestCacheEnabled());
- }
- if (config.getRequestLogEnabled() != null) {
- command.withRequestLogEnabled(config.getRequestLogEnabled());
- }
- // thread pool
- if (config.getCorePoolSize() != null) {
- threadPool.withCoreSize(config.getCorePoolSize());
- }
- if (config.getKeepAliveTime() != null) {
- threadPool.withKeepAliveTimeMinutes(config.getKeepAliveTime());
- }
- if (config.getMaxQueueSize() != null) {
- threadPool.withMaxQueueSize(config.getMaxQueueSize());
- }
- if (config.getQueueSizeRejectionThreshold() != null) {
- threadPool.withQueueSizeRejectionThreshold(config.getQueueSizeRejectionThreshold());
- }
- if (config.getThreadPoolRollingNumberStatisticalWindowInMilliseconds() != null) {
- threadPool.withMetricsRollingStatisticalWindowInMilliseconds(config.getThreadPoolRollingNumberStatisticalWindowInMilliseconds());
- }
- if (config.getThreadPoolRollingNumberStatisticalWindowBuckets() != null) {
- threadPool.withMetricsRollingStatisticalWindowBuckets(config.getThreadPoolRollingNumberStatisticalWindowBuckets());
- }
+ configureHystrix(command, threadPool, config);
}
return new HystrixProcessor(id, setter, processor, fallback);
@@ -159,4 +75,93 @@ public class HystrixProcessorFactory implements ProcessorFactory {
return null;
}
}
+
+ private void configureHystrix(HystrixCommandProperties.Setter command, HystrixThreadPoolProperties.Setter threadPool, HystrixConfigurationDefinition config) {
+ // command
+ if (config.getCircuitBreakerEnabled() != null) {
+ command.withCircuitBreakerEnabled(config.getCircuitBreakerEnabled());
+ }
+ if (config.getCircuitBreakerErrorThresholdPercentage() != null) {
+ command.withCircuitBreakerErrorThresholdPercentage(config.getCircuitBreakerErrorThresholdPercentage());
+ }
+ if (config.getCircuitBreakerForceClosed() != null) {
+ command.withCircuitBreakerForceClosed(config.getCircuitBreakerForceClosed());
+ }
+ if (config.getCircuitBreakerForceOpen() != null) {
+ command.withCircuitBreakerForceOpen(config.getCircuitBreakerForceOpen());
+ }
+ if (config.getCircuitBreakerRequestVolumeThreshold() != null) {
+ command.withCircuitBreakerRequestVolumeThreshold(config.getCircuitBreakerRequestVolumeThreshold());
+ }
+ if (config.getCircuitBreakerSleepWindowInMilliseconds() != null) {
+ command.withCircuitBreakerSleepWindowInMilliseconds(config.getCircuitBreakerSleepWindowInMilliseconds());
+ }
+ if (config.getExecutionIsolationSemaphoreMaxConcurrentRequests() != null) {
+ command.withExecutionIsolationSemaphoreMaxConcurrentRequests(config.getExecutionIsolationSemaphoreMaxConcurrentRequests());
+ }
+ if (config.getExecutionIsolationStrategy() != null) {
+ command.withExecutionIsolationStrategy(HystrixCommandProperties.ExecutionIsolationStrategy.valueOf(config.getExecutionIsolationStrategy()));
+ }
+ if (config.getExecutionIsolationThreadInterruptOnTimeout() != null) {
+ command.withExecutionIsolationThreadInterruptOnTimeout(config.getExecutionIsolationThreadInterruptOnTimeout());
+ }
+ if (config.getExecutionTimeoutInMilliseconds() != null) {
+ command.withExecutionTimeoutInMilliseconds(config.getExecutionTimeoutInMilliseconds());
+ }
+ if (config.getExecutionTimeoutEnabled() != null) {
+ command.withExecutionTimeoutEnabled(config.getExecutionTimeoutEnabled());
+ }
+ if (config.getFallbackIsolationSemaphoreMaxConcurrentRequests() != null) {
+ command.withFallbackIsolationSemaphoreMaxConcurrentRequests(config.getFallbackIsolationSemaphoreMaxConcurrentRequests());
+ }
+ if (config.getFallbackEnabled() != null) {
+ command.withFallbackEnabled(config.getFallbackEnabled());
+ }
+ if (config.getMetricsHealthSnapshotIntervalInMilliseconds() != null) {
+ command.withMetricsHealthSnapshotIntervalInMilliseconds(config.getMetricsHealthSnapshotIntervalInMilliseconds());
+ }
+ if (config.getMetricsRollingPercentileBucketSize() != null) {
+ command.withMetricsRollingPercentileBucketSize(config.getMetricsRollingPercentileBucketSize());
+ }
+ if (config.getMetricsRollingPercentileEnabled() != null) {
+ command.withMetricsRollingPercentileEnabled(config.getMetricsRollingPercentileEnabled());
+ }
+ if (config.getMetricsRollingPercentileWindowInMilliseconds() != null) {
+ command.withMetricsRollingPercentileWindowInMilliseconds(config.getMetricsRollingPercentileWindowInMilliseconds());
+ }
+ if (config.getMetricsRollingPercentileWindowBuckets() != null) {
+ command.withMetricsRollingPercentileWindowBuckets(config.getMetricsRollingPercentileWindowBuckets());
+ }
+ if (config.getMetricsRollingStatisticalWindowInMilliseconds() != null) {
+ command.withMetricsRollingStatisticalWindowInMilliseconds(config.getMetricsRollingStatisticalWindowInMilliseconds());
+ }
+ if (config.getMetricsRollingStatisticalWindowBuckets() != null) {
+ command.withMetricsRollingStatisticalWindowBuckets(config.getMetricsRollingStatisticalWindowBuckets());
+ }
+ if (config.getRequestCacheEnabled() != null) {
+ command.withRequestCacheEnabled(config.getRequestCacheEnabled());
+ }
+ if (config.getRequestLogEnabled() != null) {
+ command.withRequestLogEnabled(config.getRequestLogEnabled());
+ }
+ // thread pool
+ if (config.getCorePoolSize() != null) {
+ threadPool.withCoreSize(config.getCorePoolSize());
+ }
+ if (config.getKeepAliveTime() != null) {
+ threadPool.withKeepAliveTimeMinutes(config.getKeepAliveTime());
+ }
+ if (config.getMaxQueueSize() != null) {
+ threadPool.withMaxQueueSize(config.getMaxQueueSize());
+ }
+ if (config.getQueueSizeRejectionThreshold() != null) {
+ threadPool.withQueueSizeRejectionThreshold(config.getQueueSizeRejectionThreshold());
+ }
+ if (config.getThreadPoolRollingNumberStatisticalWindowInMilliseconds() != null) {
+ threadPool.withMetricsRollingStatisticalWindowInMilliseconds(config.getThreadPoolRollingNumberStatisticalWindowInMilliseconds());
+ }
+ if (config.getThreadPoolRollingNumberStatisticalWindowBuckets() != null) {
+ threadPool.withMetricsRollingStatisticalWindowBuckets(config.getThreadPoolRollingNumberStatisticalWindowBuckets());
+ }
+ }
}