当前位置: 首页>>代码示例>>Java>>正文


Java HystrixConcurrencyStrategy类代码示例

本文整理汇总了Java中com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy的典型用法代码示例。如果您正苦于以下问题:Java HystrixConcurrencyStrategy类的具体用法?Java HystrixConcurrencyStrategy怎么用?Java HystrixConcurrencyStrategy使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


HystrixConcurrencyStrategy类属于com.netflix.hystrix.strategy.concurrency包,在下文中一共展示了HystrixConcurrencyStrategy类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: init

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
/**
 * registers the {@link ExecutionContextAwareHystrixStrategy}
 */
public static void init() {
    // keeps references of existing Hystrix plugins.
    HystrixConcurrencyStrategy existingConcurrencyStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();
    HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance().getEventNotifier();
    HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance().getMetricsPublisher();
    HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance().getPropertiesStrategy();
    HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins.getInstance().getCommandExecutionHook();
    // reset the Hystrix plugin
    HystrixPlugins.reset();
    // configure the  plugin
    HystrixPlugins.getInstance().registerConcurrencyStrategy(new ExecutionContextAwareHystrixStrategy(existingConcurrencyStrategy));
    HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
    HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
    HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
    HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook);
    log.info("Context propagation enabled for Hystrix.");
}
 
开发者ID:enadim,项目名称:spring-cloud-ribbon-extensions,代码行数:21,代码来源:PreservesExecutionContextHystrixStrategy.java

示例2: bindTo

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Override
public void bindTo(MeterRegistry registry) {
    // Keeps references of existing Hystrix plugins.
    HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance().getEventNotifier();
    HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance().getPropertiesStrategy();
    HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins.getInstance().getCommandExecutionHook();
    HystrixConcurrencyStrategy concurrencyStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();

    HystrixPlugins.reset();

    // Registers existing plugins except the new MicroMeter Strategy plugin.
    HystrixPlugins.getInstance().registerMetricsPublisher(new MicrometerMetricsPublisher(registry));
    HystrixPlugins.getInstance().registerConcurrencyStrategy(concurrencyStrategy);
    HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
    HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
    HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook);
}
 
开发者ID:micrometer-metrics,项目名称:micrometer,代码行数:18,代码来源:HystrixMetricsBinder.java

示例3: setUp

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Before
public void setUp() {
    final HystrixPlugins plugins = HystrixPlugins.getInstance();
    final HystrixConcurrencyStrategy delegate = new HystrixConcurrencyStrategy() {
        @Override
        public <T> Callable<T> wrapCallable(final Callable<T> callable) {
            return () -> {
                // to verify that the delegate has already access to the trace
                assertThat(trace.getValue(), is("76f6046c-1b56-11e6-8c85-8fc9ee29f631"));
                return callable.call();
            };
        }
    };
    plugins.registerConcurrencyStrategy(new TracerConcurrencyStrategy(tracer, delegate));
}
 
开发者ID:zalando,项目名称:tracer,代码行数:16,代码来源:TracerConcurrencyStrategyTest.java

示例4: should_delegate_work_to_custom_hystrix_concurrency_strategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Test
public void should_delegate_work_to_custom_hystrix_concurrency_strategy()
		throws Exception {
	HystrixConcurrencyStrategy strategy = Mockito.mock(HystrixConcurrencyStrategy.class);
	HystrixPlugins.getInstance().registerConcurrencyStrategy(strategy);
	SleuthHystrixConcurrencyStrategy sleuthStrategy = new SleuthHystrixConcurrencyStrategy(
			this.tracer, this.traceKeys);

	sleuthStrategy.wrapCallable(() -> "foo");
	sleuthStrategy.getThreadPool(HystrixThreadPoolKey.Factory.asKey(""), Mockito.mock(
			HystrixThreadPoolProperties.class));
	sleuthStrategy.getThreadPool(HystrixThreadPoolKey.Factory.asKey(""),
			Mockito.mock(HystrixProperty.class), Mockito.mock(HystrixProperty.class),
			Mockito.mock(HystrixProperty.class), TimeUnit.DAYS, Mockito.mock(
					BlockingQueue.class));
	sleuthStrategy.getBlockingQueue(10);
	sleuthStrategy.getRequestVariable(Mockito.mock(
			HystrixLifecycleForwardingRequestVariable.class));

	BDDMockito.then(strategy).should().wrapCallable((Callable) BDDMockito.any());
	BDDMockito.then(strategy).should().getThreadPool(BDDMockito.any(), BDDMockito.any());
	BDDMockito.then(strategy).should().getThreadPool(BDDMockito.any(), BDDMockito.any(),
			BDDMockito.any(), BDDMockito.any(), BDDMockito.any(), BDDMockito.any());
	BDDMockito.then(strategy).should().getThreadPool(BDDMockito.any(), BDDMockito.any(),
			BDDMockito.any(), BDDMockito.any(), BDDMockito.any(), BDDMockito.any());
	BDDMockito.then(strategy).should().getBlockingQueue(10);
	BDDMockito.then(strategy).should().getRequestVariable(BDDMockito.any());
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-sleuth,代码行数:29,代码来源:SleuthHystrixConcurrencyStrategyTest.java

示例5: HystrixStrategies

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public HystrixStrategies(HystrixPropertiesStrategy hystrixPropertiesStrategy,
						 HystrixConcurrencyStrategy concurrencyStrategy,
						 HystrixEventNotifier eventNotifier,
						 String id) {
	this.hystrixPropertiesStrategy = hystrixPropertiesStrategy;
	this.hystrixConcurrencyStrategy = concurrencyStrategy;
	this.hystrixEventNotifier = eventNotifier;
	this.id = id;
}
 
开发者ID:AvanzaBank,项目名称:astrix,代码行数:10,代码来源:HystrixStrategies.java

示例6: getJsr236ConcurrencyStrategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Test
public void getJsr236ConcurrencyStrategy() throws Exception {
    HystrixConcurrencyStrategy concurrencyStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();
    assertThat(concurrencyStrategy, is(notNullValue()));
    assertThat(concurrencyStrategy, instanceOf(HystrixConcurrencyStrategyJsr236.class));
}
 
开发者ID:lreimer,项目名称:cloud-native-javaee,代码行数:7,代码来源:HystrixPluginsIntegrationTest.java

示例7: TracerConcurrencyStrategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public TracerConcurrencyStrategy(final Tracer tracer, final HystrixConcurrencyStrategy delegate) {
    this.tracer = tracer;
    this.delegate = delegate;
}
 
开发者ID:zalando,项目名称:tracer,代码行数:5,代码来源:TracerConcurrencyStrategy.java

示例8: delegate

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Override
protected HystrixConcurrencyStrategy delegate() {
    return delegate;
}
 
开发者ID:zalando,项目名称:tracer,代码行数:5,代码来源:TracerConcurrencyStrategy.java

示例9: register

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public static void register(String id, HystrixConcurrencyStrategy strategy) {
	multiConcurrencyStrategyDispatcher.register(id, strategy);
	verifyRegistered();
}
 
开发者ID:AvanzaBank,项目名称:astrix,代码行数:5,代码来源:MultiConfigs.java

示例10: register

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public void register(String id, HystrixConcurrencyStrategy strategy) {
	this.strategies.put(MultiConfigId.create(id), strategy);
}
 
开发者ID:AvanzaBank,项目名称:astrix,代码行数:4,代码来源:MultiConcurrencyStrategyDispatcher.java

示例11: getHystrixConcurrencyStrategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public HystrixConcurrencyStrategy getHystrixConcurrencyStrategy() {
	return this.hystrixConcurrencyStrategy;
}
 
开发者ID:AvanzaBank,项目名称:astrix,代码行数:4,代码来源:HystrixStrategies.java

示例12: buildAndRegister

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public void buildAndRegister() {
    HystrixPlugins plugins = HystrixPlugins.getInstance();

    // memorize the registered plugins
    HystrixCommandExecutionHook commandExecutionHook = plugins.getCommandExecutionHook();
    HystrixEventNotifier eventNotifier = plugins.getEventNotifier();
    HystrixMetricsPublisher metricsPublisher = plugins.getMetricsPublisher();
    HystrixPropertiesStrategy propertiesStrategy = plugins.getPropertiesStrategy();
    HystrixConcurrencyStrategy concurrencyStrategy = plugins.getConcurrencyStrategy();

    HystrixMetricsCollector collector = new HystrixMetricsCollector(namespace,
            new Consumer<Histogram.Builder>() {
                @Override
                public void accept(Histogram.Builder builder) {
                    if (metrics == MetricsType.EXPONENTIAL) {
                        builder.exponentialBuckets(exponentialStart, exponentialFactor, exponentialCount);
                    } else if (metrics == MetricsType.LINEAR) {
                        builder.linearBuckets(linearStart, linearWidth, linearCount);
                    } else if (metrics == MetricsType.DISTINCT) {
                        builder.buckets(distinctBuckets);
                    } else if (metrics == MetricsType.DEFAULT) {
                        // nothing to do
                    } else {
                        throw new IllegalStateException("unknown enum state " + metrics);
                    }
                }
            }).register(registry);

    // wrap the metrics publisher plugin
    HystrixPrometheusMetricsPublisher wrappedMetricsPublisher =
            new HystrixPrometheusMetricsPublisher(exportProperties,
                    exportDeprecatedMetrics, collector, metricsPublisher);

    // reset all plugins
    HystrixPlugins.reset();
    // the following statement wouldn't be necessary, but I'm paranoid that reset might
    // change the plugin instance.
    plugins = HystrixPlugins.getInstance();

    // set previous values for all plugins, but not if they would use the default implementation,
    // as this would block the slot for plugins to be registered.

    // REASON: if there was no previous setting, Hystrix would have returned the default implementation
    // and not all other plugin use the reset-and-wrap approach we do here.

    // ASSUMPTION: the default strategies/hooks can't wrap a different strategy/hook

    // CAVEAT: instead of a default implementation there is a sophisticated Archaius configuration mechanism
    // to determine a class from property settings. There is a corner case where someone would register a
    // default implementation manually overriding an Archaius configuration. Therefore this is configurable
    // using "registerDefaultPlugins".

    if (registerDefaultPlugins || concurrencyStrategy.getClass() != HystrixConcurrencyStrategyDefault.class) {
        plugins.registerConcurrencyStrategy(concurrencyStrategy);
    }
    if (registerDefaultPlugins || commandExecutionHook.getClass() != HystrixCommandExecutionHookDefault.class) {
        plugins.registerCommandExecutionHook(commandExecutionHook);
    }
    if (registerDefaultPlugins || eventNotifier.getClass() != HystrixEventNotifierDefault.class) {
        plugins.registerEventNotifier(eventNotifier);
    }
    if (registerDefaultPlugins || propertiesStrategy.getClass() != HystrixPropertiesStrategyDefault.class) {
        plugins.registerPropertiesStrategy(propertiesStrategy);
    }

    // ... except for the metrics publisher that will now be wrapped
    plugins.registerMetricsPublisher(wrappedMetricsPublisher);
}
 
开发者ID:ahus1,项目名称:prometheus-hystrix,代码行数:69,代码来源:HystrixPrometheusMetricsPublisher.java

示例13: SecurityContextConcurrencyStrategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
public SecurityContextConcurrencyStrategy(
		HystrixConcurrencyStrategy existingConcurrencyStrategy) {
	this.existingConcurrencyStrategy = existingConcurrencyStrategy;
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:5,代码来源:SecurityContextConcurrencyStrategy.java

示例14: testSecurityConcurrencyStrategyInstalled

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
@Test
public void testSecurityConcurrencyStrategyInstalled() {
	HystrixConcurrencyStrategy concurrencyStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();
	assertThat(concurrencyStrategy).isInstanceOf(SecurityContextConcurrencyStrategy.class);
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:6,代码来源:HystrixSecurityTests.java

示例15: setHystrixConcurrencyStrategy

import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; //导入依赖的package包/类
void setHystrixConcurrencyStrategy(HystrixConcurrencyStrategy concurrencyStrategy) {
    LOGGER.entering(CLASSNAME, "setHystrixConcurrencyStrategy", concurrencyStrategy);
    HystrixPlugins.getInstance().registerConcurrencyStrategy(concurrencyStrategy);
    LOGGER.exiting(CLASSNAME, "setHystrixConcurrencyStrategy");
}
 
开发者ID:WASdev,项目名称:sample.netflixoss.wlp,代码行数:6,代码来源:WsHystrix.java


注:本文中的com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。